「n+1問題」というのを知ったのでincludesを試みましたが、表題のエラーになり解決できません。
モデルは、「SubCategory」が複数の「Item」を持つ親子関係です。
SubCategory モデル
ruby
1class SubCategory < ApplicationRecord 2 has_many :items 3end
Item モデル
ruby
1class Item < ApplicationRecord 2 belongs_to :sub_category 3end
SubCategory コントローラ
ruby
1@sub_categories = SubCategory.where(category_id: params[:category_id]).includes(:item).all 2
SubCategory ビュー
ruby
1<% @sub_categories.each do |sub_category| %> 2 <p><%= link_to sub_category.name, items_path(search: {sub_category_id: sub_category.id}) %> <%= "(#{sub_category.items.count})" %></p> 3 4<% end %>
ビューの1行目で以下のエラーが出ました。
Association named 'item' was not found on SubCategory; perhaps you misspelled it?
アソシエーションがちゃんと出来てないのかなと思い、
各モデル参照キーを設定してみましたが、エラー内容は変わらずでした。
ruby
1class SubCategory < ApplicationRecord 2 has_many :items, :foreign_key => 'category_id' 3end 4 5class Item < ApplicationRecord 6 belongs_to :sub_category, :foreign_key => 'sub_category_id' 7end 8
分かる方教えていただけないでしょうか?
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/16 00:23
2020/06/16 00:24