【发布时间】:2013-11-15 15:47:13
【问题描述】:
我正在为 Rails 使用 thumbs_up gem 并寻找如何以编程方式向用户添加更多业力?还是用 100 karma 初始化一个用户?
【问题讨论】:
标签: ruby-on-rails voting
我正在为 Rails 使用 thumbs_up gem 并寻找如何以编程方式向用户添加更多业力?还是用 100 karma 初始化一个用户?
【问题讨论】:
标签: ruby-on-rails voting
正如您从definition of karma 中看到的,它实际上只是用户模型(或您标记为acts_as_voter 的任何模型)上用has karma 指定的模型实例的赞成票和反对票之间的加权差异。
因此,您可以使用acts_as_voteable 创建一个KarmaAdjustment 模型并将has_karma :karma_adjustment, :as => :submitter 添加到您的用户模型中,然后让您想要提升其业力的用户创建虚假的KarmaAdjustment 实例,并用一个虚拟用户对其进行投票(s)。我不确定用户是否可以多次投票。如果不是这样,这种方法会很麻烦,因为您要么需要对每张选票进行加权,和/或创建一堆虚拟用户来投票。
另外,可能最好是,您可以修补 gem。要么 fork 它并修改上面的 karma 定义,要么只是使用初始化程序即时修补它。我研究了如何创建一个示例来说明如何执行此操作,但是从我所见,这将是一个相当大的修复。不仅仅是几行快速的行,可能跨越几个文件/类。我建议在 github 上打开一个问题与维护者讨论这个问题。
【讨论】:
更简单,只需在显示时进行调整!例如,在您看来,
<%= user.karma + 10 %>
【讨论】: