我目前有一個評論控制器,它有方法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
這允許多票投反對票。我如何設計它,以便用戶只能對每條評論進行一次投票,但是如果他們投了票或投票,他們就會保持跟蹤,所以他們有能力在他們想要的時候改變他們的投票。
還請注意,在SO – KevinDTimm
上搜索「每用戶一票」時發現許多結果您需要另一個模型來跟蹤投票。您可以使用唯一性約束來僅允許每個用戶投一票,這正是Mikhailov的答案。 –
我正在閱讀這個答案,但是我怎麼做才能允許用戶稍後改變他的投票呢?可以說從-1到1 – Kevin