首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在创建第二个用户之后,业绩确实会停止工作。

在创建第二个用户之后,业绩确实会停止工作。
EN

Stack Overflow用户
提问于 2018-05-19 19:07:25
回答 1查看 32关注 0票数 0

我对“功德与设计”有一个棘手的问题。当一个成员创建一个帐户(第一个成员)时,他会得到一个徽章,正如下面的规则所示。非常适合他。

代码语言:javascript
运行
复制
grant_on 'members/registrations#create', badge: 'WelcomeIn', model_name: 'Member'

如果我为测试创建了log_out并创建了另一个成员,则会创建第二个成员,但在服务器日志中有一个回滚(参见下面)。然后其他的奖励规则将不适用于第二个成员,但功钢厂为第一个.

我真的不明白,整个下午都没有解决办法.

简单地解释一下,当它起作用时,我在日志中有:

代码语言:javascript
运行
复制
SQL (0.5ms)  UPDATE "members" SET "sash_id" = $1, "updated_at" = $2 WHERE "members"."id" = $3  [["sash_id", 1], ["updated_at", "2018-05-19 17:15:30.716358"], ["id", 3]]

当它不起作用时,我得到一个回滚,而不是上面的行:

代码语言:javascript
运行
复制
   (0.1ms)  ROLLBACK

我log_out并为测试创建另一个成员。创建了这个成员,但是我在服务器日志中有一个回滚(见下面)。然后Merit停止为他工作(第二个成员),但是Merit为第一个.

我真的不明白,整个下午都没有解决办法.

registrations_controller

代码语言:javascript
运行
复制
class Members::RegistrationsController < Devise::RegistrationsController

  # POST /resource
  def create
    @user = build_resource # Needed for Merit
    super

    if @member.persisted?
      MemberMailer.send_welcome(@member).deliver_now
      Notification.create!(category: "welcome", member: @member, topic: "Bienvenue sur MonApp !", checked: false)
    end

  end

编辑与解决

如果您有一个名为“User”的Devise (就像我的成员),那么在Merit设置之后,您必须在Controller中添加一行(见下文)。

registrations_controller

代码语言:javascript
运行
复制
class Members::RegistrationsController < Devise::RegistrationsController

  # POST /resource
  def create
    @user = build_resource # Needed for Merit
    @member = @user
    super
  end

感谢@TuteC的支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 03:19:27

在控制器中的@user = build_resource行之后,添加@member = @user。设计需要@user,而您的优点配置为查找@member

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50428595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档