Actualmente tengo un controlador de comentarios que tiene el método vote_up y vote_down así es como mi voto_actualmente funciona.¿Cómo implementar un voto por usuario por comentario?
Mi modelo de comentario tiene una descripción y un campo de conteo.
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
Esto permite múltiples subidas y bajadas de votos. ¿Cómo lo diseñaría para que un usuario solo pueda votar una vez por comentario, pero de alguna manera realizar un seguimiento si votó a favor o en contra, de modo que tenga la capacidad de cambiar su voto si así lo desea también?
tenga en cuenta también que hay muchos resultados encontrados al buscar 'un voto por usuario' en SO – KevinDTimm
Necesitará otro modelo para rastrear los votos. Puede usar restricciones de exclusividad para permitir solo un voto por usuario, que es exactamente lo que hace la respuesta de Mikhailov. –
Estaba leyendo esa respuesta, pero ¿cómo podría hacerlo para que un usuario pueda cambiar su voto más tarde? Digamos desde -1 hasta 1 – Kevin