railsで検索機能を作っているのですが、アソシエーションを組んでいるモデルを対象にして検索をしようとするとエラーになります
categoriesテーブルのnameを検索対象にしようとtweetsテーブルと結合しました
Tweet.joins(:categories).where('categories.name LIKE(?) "%#{search}%")
###エラー
Can't join 'Tweet' to association named 'categories'; perhaps you misspelled it?
以上のエラーが発生してしまいます
調べたところ結合がうまくいってなく、モデル側に設定をしなければならないらしいですが、以下の通り記述はしましたが、エラーが解消されません
どのようにすればいいのでしょうか?
###関係
tweetテーブル
|id|text|school_a.id|school_b.id
|:--|:--:|--:|
|1|おはよう|1|2|
school_a.idはA高校を指しています
school_b.idはB高校を指しています
categoriesテーブル
id | name |
---|---|
1 | A高校 |
2 | B高校 |
Tweetモデル
belongs_to :school_a,class_name: 'Category', foreign_key: 'school_a_id' belongs_to :school_b,class_name: 'Category', foreign_key: 'school_b_id'
Categoryモデル
has_many :tweets has_many :school_a_tweets,class_name: 'Tweet', foreign_key: 'school_a_id' has_many :school_b_tweets,class_name: 'Tweet', foreign_key: 'school_b_id'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/26 00:43
2020/09/28 11:57