[英]Rails 4 Error: NoMethodError - undefined method `itemfavorites'
Hey I am receiving an issue when accessing @interestedusers = User.itemfavorites.where(item_id: @item.id)
from my ItemsController
: 嘿,从我的
ItemsController
访问@interestedusers = User.itemfavorites.where(item_id: @item.id)
时@interestedusers = User.itemfavorites.where(item_id: @item.id)
问题:
NoMethodError in ItemsController#show
undefined method `itemfavorites' for #<Class:0xfb94bb8>
Routes 路线
resources :items do
get :itemfavorites, on: :member
end
User Model 用户模型
# Favorite items of user
has_many :favorite_items # just the 'relationships'
has_many :itemfavorites, through: :favorite_item, source: :item # the actual items the user favorites
Item Model 项目型号
# Favorited by users
has_many :favorite_items # just the 'relationships'
has_many :itemsfavorited_by, through: :favorite_items, source: :user # the actual users favoriting an item
The general association works, I tested it and I can add/remove and display favorites. 常规关联有效,我对其进行了测试,可以添加/删除并显示收藏夹。
I am trying to display the users favorited an Item. 我试图显示用户喜欢的项目。
Thanks in advance for each answer! 预先感谢您的每个答案! Please tell me if you need additional information.
请告诉我您是否需要其他信息。
You are calling itemfavorites on the User class, not a User instance. 您在User类而不是User实例上调用itemfavorites。 I guess you want to do something like
我想你想做类似的事情
@interestedusers = current_user.itemfavorites.where(item_id: @item.id)
or 要么
@interestedusers = @user.itemfavorites.where(item_id: @item.id)
EDIT: you want to do this to get users for an item: 编辑:您想要这样做以获取用户的项目:
@interestedusers = @item.itemsfavorited_by
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.