Как получить результаты acts_as_votable для конкретной модели?
Я работаю с гемом act_as_votable для проекта, который позволит пользователям "любить" свои любимые курсы и свои любимые руководства. Избранные руководства будут отображаться на одной странице, а избранные курсы - на другой. У меня возникли проблемы с получением конкретных результатов модели в моем контроллере ниже код, который работает, но не привязан к конкретному контроллеру.
class FavoritesController < ApplicationController
def guides
end
def courses
user = current_user
@courses = user.find_up_voted_items
end
end
Это единственный код, который мне довелось работать, я понимаю, что в контроллере сейчас нет ничего, чтобы сузить результаты до конкретной модели, но я не смог получить ничего, что пытался работать.
1 ответ
Из документов act_as_votable:
Также могут отображаться члены отдельной модели, за которую проголосовал пользователь. Результатом является ActiveRecord Relation.
@user.get_voted Comment @user.get_up_voted Comment @user.get_down_voted Comment
https://github.com/ryanto/acts_as_votable
Так что в вашем случае я бы использовал:
class FavoritesController < ApplicationController
before_action :get_user, only: %i[guides courses]
def guides
@guides = @user.get_up_voted Guide
end
def courses
@courses = @user.get_up_voted Course
end
private
def get_user
@user = current_user
end
end