Я пытаюсь разработать рейтинги для своего приложения, где пользователь может установить конкретный рейтинг для комментария. Я следовал следующему руководству, чтобы сделать это.
Вот мои ассоциации:
class Rating < ActiveRecord::Base
belongs_to :comment
belongs_to :user
end
class Comment < ActiveRecord::Base
has_many :ratings
belongs_to :user
end
class User < ActiveRecord::Base
has_many :ratings
has_many :comments
end
Моя проблема здесь в том, что в действии index моего контроллера комментариев мне нужно включить рейтинг, который пользователь сделал для этого комментария. В учебнике показано, как выбрать определенный рейтинг, выполнив следующие действия:
@rating = Rating.where(comment_id: @comment.id, user_id: @current_user.id).first
unless @rating
@rating = Rating.create(comment_id: @comment.id, user_id: @current_user.id, score: 0)
end
Однако у меня будет несколько рейтингов, потому что в моем контроллере есть:
def index
@comments = @page.comments #Here each comment should have the associated rating for the current_user, or a newly created rating if it does not exist.
end