rails的“喜欢”,“不喜欢”插件
铁路有任何“喜欢”,“不喜欢”的插件……
我通过评级插件…但他们都是5星评级插件…
我建议通过采用经典投票模型function来创建like
和dislike
选项。
因此,您可以选择Vote
作为User
和可Votable Item
之间的Votable Item
表。
Vote值可以作为Vote.value + 1 = Like,Vote.value -1 =不喜欢,Vote.value =中立/没有投票。
您的可投票项目的控制器可能如下所示:
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
对于每个人的信息,这个问题不值得投票。 它完全有效。
我知道答案已被接受,但我刚刚发现了一个名为act_as_votable的gem,可能符合您的需求:
Acts As Votable是专门为Rails / ActiveRecord模型编写的Ruby Gem。 这个gem的主要目标是:
- 允许任何模型投票,如/不喜欢,upvote / downvote等。
- 允许任何模型投票。 换句话说,投票不一定来自用户,他们可以来自任何模型(例如团队或团队)。
- 提供易于编写/读取的语法。
我认为这个问题没有错。
上调投票仍在评级中。 只使用两颗星。 :)我似乎记得acts_as_rateable允许明星定义的数量。
为什么不创建一个名为like
的新布尔字段? 然后将其更新为false
的不喜欢和true
的喜欢 。 我怀疑你找到了这个function的插件/ gem。