私は現在、vote_upとvote_downのメソッドを持つコメントコントローラを持っています。これは、私のvote_upが現在どのように動作しているかです。コメント1人につき1人の投票を実装する方法は?
マイコメントモデルには説明とカウントフィールドがあります。
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
これにより、複数の投票が可能となります。どのようにユーザーがコメントごとに1回だけ投票することができるように、どのように設計するのですか?彼らが投票したかどうかを追跡しているので、投票が必要な場合は投票を変更することができます。
また、多くの結果が見つかりましたので、あなたの投票を追跡する別のモデルが必要になりますSO – KevinDTimm
で '1つの投票ユーザーごと'を検索します。一意性制約を使用すると、1人のユーザーにつき1つの投票しか許可できません。これはまさにMikhailovの答えです。 –
私はその答えを読んでいたが、ユーザーが後で彼の投票を変更できるようにするにはどうすればよいだろうか? 1から1へと言います – Kevin