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