以下の中間テーブルに保存したいのですが、tweetを保存しても、中間テーブルに保存されません
アソシエーションが違っていると思うのですが、なかなかわかりません
違っていない場合は、違っていないと教えてください
よろしくお願いします
参考にした記事
中間テーブル
######category_tweetsテーブル
|id|school_a_id|school_b_id|tweet_id|
|:--|:--:|--:|
||||
schoolのidはcategoryテーブルのidを持ってこようと、マイグレーションを以下のように設定しています
class CreateCategoryTweets < ActiveRecord::Migration[5.2] def change create_table :category_tweets do |t| t.references :school_a,index: true, foreign_key: {to_table: :categories} t.references :school_b,index: true, foreign_key: {to_table: :categories} t.references :tweet, index: true, foreign_key: true t.timestamps end end end
それぞれの関係は以下のように組みました
######tweetモデル
class Tweet < ApplicationRecord //belongs_to :user has_many :category_tweets has_many :categories,through: :category_tweets has_many :comments end
######categoryモデル
class Category < ApplicationRecord //has_many :category_tweets has_many :tweets,through: :category_tweets has_ancestry has_many :school_a_category_tweets, foreign_key: 'school_a_id' has_many :school_b_category_tweets, foreign_key: 'school_b_id' end
######category_tweetモデル
class CategoryTweet < ApplicationRecord belongs_to :tweet //belongs_to :category belongs_to :school_a, foreign_key: 'school_a_id' belongs_to :school_b, foreign_key: 'school_b_id' end
回答1件
あなたの回答
tips
プレビュー