Mad*_*han 16 ruby-on-rails ruby-on-rails-plugins
铁路有任何"喜欢","不喜欢"的插件......
我通过评级插件...但他们都是5星评级插件...
Tri*_*rip 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
Run Code Online (Sandbox Code Playgroud)
对于每个人的信息,这个问题不值得投票.它完全有效.
小智 5
我知道答案已被接受,但我刚刚发现了一个名为act_as_votable的宝石,可能符合您的需求:
Acts As Votable是专门为Rails/ActiveRecord模型编写的Ruby Gem.这个宝石的主要目标是:
- 允许任何模型投票,如/不喜欢,upvote/downvote等.
- 允许任何模型投票.换句话说,投票不一定来自用户,他们可以来自任何模型(例如团队或团队).
- 提供易于编写/读取的语法.