ruby-on-rails - "Like", "Dislike" rails 插件

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

是否有任何“喜欢”、“不喜欢”的 Rails 插件...

我浏览了评级插件……但它们都是 5 星评级插件……

最佳答案

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

所以你有 Vote作为 User 之间的连接表和 Votable Item .

投票值可以作为 Vote.value + 1 = 喜欢,Vote.value -1 = 不喜欢,Vote.value = 中立/未投票。

您的可投票项目的 Controller 可能如下所示:

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

对于每个人的信息,这个问题不应该被否决。它完全有效。

关于ruby-on-rails - "Like", "Dislike" rails 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703194/

相关文章:

ruby-on-rails - 如何使用 Inherited Resources Rails 插件根据成功或失败自定义 flash 消息?

ruby-on-rails - 标记要在模块中使用的特定 Rails 模型的最佳方法

ruby-on-rails - RSpec:如何将 "let"变量作为参数传递给共享示例

ruby-on-rails - 如何在rails中更新推特

ruby-on-rails - Heroku 实例中的 Rails 4 `rake db:migrate`,引用错误

ruby-on-rails - 使用 Rails 2.3.5 运行 Thinking Sphinx 时出现问题

mysql - 清理 Rails 迁移和持久化生产数据

ruby-on-rails - assert_not_in_array

ruby-on-rails - Rails 3.0.0.beta 和 Facebooker : anyone else seeing the following?