Как реализовать один голос для каждого пользователя за комментарий?

В настоящее время у меня есть контроллер комментариев, в котором есть методы vote_up и vote_down, вот как сейчас работает мой vote_up.

Моя модель комментариев имеет описание и поле подсчета.

  def vote_up
    @comment = Comment.find(params[:comment_id])
    @comment.count += 1
    if @comment.save
      flash[:notice] = "Thank you for voting"
      respond_to do |format|
        format.html { redirect_to show_question_path(@comment.question) }
        format.js
      end
    else
      flash[:notice] = "Error Voting Please Try Again"
      redirect_to show_question_path(@comment.question)
    end
  end

Это позволяет проводить многократное голосование вверх и вниз. Как бы я спроектировал это так, чтобы пользователь мог проголосовать только один раз за комментарий, но каким-то образом отслеживать, проголосовал ли он за или против, чтобы у них была возможность изменить свой голос, если они тоже захотят.

5
задан Kevin 21 July 2011 в 13:36
поделиться