铁路的“喜欢”,“不喜欢”插件

时间:2010-09-13 18:14:41

标签: ruby-on-rails ruby-on-rails-plugins

是否有任何“喜欢”,“不喜欢”的插件用于导轨......

我通过评级插件...但他们都是5星评级插件......

5 个答案:

答案 0 :(得分:13)

我建议您通过采用经典投票模型功能来创建likedislike选项。

因此,您Vote作为UserVotable 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的新布尔字段?然后将其更新为不喜欢falsetrue。我怀疑你找到了这个功能的插件/ gem。