简体   繁体   English

Rails 4错误:NoMethodError-未定义的方法“ itemfavorites”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM