解决方法
我建议通过采用经典的投票模式功能来创建喜欢和不喜欢的选项.
所以你有投票作为用户和Votable项目之间的连接表.
投票价值可以作为Vote.value 1 = Like,Vote.value -1 = Dislike,Vote.value = Neutral /没有投票.
您的投票项目的控制器可能如下所示:
def like get_vote @vote.value += 1 unless @vote.value == 1 @vote.save respond_to do |format| format.html format.js end end def dislike get_vote @vote.value -= 1 unless @vote.value == -1 @vote.save respond_to do |format| format.html format.js end end private def get_vote current_item = @item.detect{|r| r.id == params[:id].to_i} @vote = current_item.votes.find_by_user_id(current_user.id) unless @vote @vote = Vote.create(:user_id => current_user.id,:value => 0) current_item.votes << @vote end end
对于每个人的信息,这个问题不值得投票.它完全有效.