-1

Эй я получаю проблемы при доступе к @interestedusers = User.itemfavorites.where(item_id: @item.id) из моих ItemsController:Rails 4 Ошибка: NoMethodError - неопределенный метод `itemfavorites'

NoMethodError in ItemsController#show 
undefined method `itemfavorites' for #<Class:0xfb94bb8> 

Маршруты

resources :items do 
    get :itemfavorites, on: :member 
end 

пользователя Модель

# 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 

Артикул

# 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 

Общее объединение работает, я проверил это, и я могу добавить/удалить и отображение избранных.

Я пытаюсь показать пользователей, которым понравился товар.

Заранее благодарим за каждый ответ! Скажите, пожалуйста, если вам нужна дополнительная информация.

ответ

2

Вы вызываете itemfavorites в классе User, а не в экземпляре пользователя. Я предполагаю, что вы хотите сделать что-то вроде

@interestedusers = current_user.itemfavorites.where(item_id: @item.id) 

или

@interestedusers = @user.itemfavorites.where(item_id: @item.id) 

EDIT: Вы хотите сделать это, чтобы заставить пользователей для элемента:

@interestedusers = @item.itemsfavorited_by 
+0

'current_user' работает. Проблема в том, что я хочу получить Пользователь (модель). С вашим предлагаемым способом я получаю товар (модель) – Gugubaight

+0

получить пользователя? что вы имеете в виду? – Aleksey

+0

Если я прохожу через это, я хочу получить доступ к таблице пользователей моей базы данных, и с этим решением я получаю доступ к таблице Items :) – Gugubaight