加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 4:使用优点gem创建点规则

发布时间:2020-12-17 03:06:19 所属栏目:百科 来源:网络整理
导读:我正在将我的应用程序的投票和声誉系统从 activerecord-reputation-system转换为 merit,因为后者似乎有一个更活跃的核心团队. 我正在尝试为我的应用中的问题和答案建立投票点规则.理想情况下,当用户对某个问题进行投票时,该规则会将问题分配给问题本身,也会
我正在将我的应用程序的投票和声誉系统从 activerecord-reputation-system转换为 merit,因为后者似乎有一个更活跃的核心团队.

我正在尝试为我的应用中的问题和答案建立投票点规则.理想情况下,当用户对某个问题进行投票时,该规则会将问题分配给问题本身,也会分配给问题的创建者.

从point rules的优点自述部分,我看到这个例子:

score 15,on: 'reviews#create',to: [:reviewer,:reviewed]

我的理解是:在这个例子中,评论者和评论者可以获得分配给他们的分数.但是,当我在自己的point_rules.rb中尝试这个时:

score 10,:on => 'questions#vote',:to => :question

我收到以下错误:

[merit] NoMethodError on `Question#question` (called from Merit::TargetFinder#other_target)

我知道我在这里遗漏了一些东西,但有人可以告诉我它是什么吗?

解决方法

功绩如下:

如果您定义的规则未指定给谁,则默认情况下会将这些点分配给current_user

score 15,on: 'reviews#create' # This is for current_user

如果要为current_user之外的用户分配点,请指定它

score 10,to: :user

在上面的示例中,:user指的是方法question.user,它是问题的作者,不同于对其进行投票的current_user.

在OP的情况下,实际上ActiveRecord声誉和Merit用于不同的目的,不能完全互换.

> ARP可用于所有型号,包括用户和非用户. Meirt仅供用户使用.> Merit还有另一个徽章模块. ARP没有.> Merit有一个Rule模块,您可以在一个地方定义所有规则,如CanCan.在ARP中没有这样的地方.>你将主要在ARP中处理模型.在Merit中,您将使用Controller和Model.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读