Ruby on rails 在用设计创建第二个用户后,优点不再起作用
我在优点和设计方面有一个棘手的问题。 当一个会员创建一个账户(第一个会员)时,他会得到一个徽章,如下规则所示。这对他很合适Ruby on rails 在用设计创建第二个用户后,优点不再起作用,ruby-on-rails,devise,merit-gem,Ruby On Rails,Devise,Merit Gem,我在优点和设计方面有一个棘手的问题。 当一个会员创建一个账户(第一个会员)时,他会得到一个徽章,如下规则所示。这对他很合适 grant_on 'members/registrations#create', badge: 'WelcomeIn', model_name: 'Member' 如果我注销并为测试创建另一个成员,则会创建第二个成员,但服务器日志中有一个回滚(见下文)。然后,第二个成员将不适用其他奖励规则,但第一个成员将适用奖励钢铁厂 我真的不明白,整个下午都没有解决方案 简而言之,当它
grant_on 'members/registrations#create', badge: 'WelcomeIn', model_name: 'Member'
如果我注销并为测试创建另一个成员,则会创建第二个成员,但服务器日志中有一个回滚(见下文)。然后,第二个成员将不适用其他奖励规则,但第一个成员将适用奖励钢铁厂
我真的不明白,整个下午都没有解决方案
简而言之,当它工作时,我在日志中有:
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]]
当它不起作用时,我得到的是回滚,而不是上面的行:
(0.1ms) ROLLBACK
我注销并为测试创建另一个成员。成员已创建,但我在服务器日志中有一个回滚(请参见下文)。然后功绩不再为他(第二个成员)工作,但功绩为第一个成员工作
我真的不明白,整个下午都没有解决方案
注册\u控制器
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
class Members::RegistrationsController < Devise::RegistrationsController
# POST /resource
def create
@user = build_resource # Needed for Merit
@member = @user
super
end
类成员::注册控制器<设计::注册控制器
#员额/资源
def创建
@用户=构建资源#优点所需
超级的
如果@member.com持续存在?
MemberMailer。发送欢迎(@member)。立即发送
通知。创建!(类别:“欢迎”,成员:@member,主题:“Bienvenue sur MonApp!”,勾选:false)
终止
终止
编辑和解决方案
如果您有一个设计模型的名称不是“用户”(就像我的会员),您必须在优点文件设置后在控制器中添加一行(见下文)
注册\u控制器
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
class Members::RegistrationsController < Devise::RegistrationsController
# POST /resource
def create
@user = build_resource # Needed for Merit
@member = @user
super
end
类成员::注册控制器<设计::注册控制器
#员额/资源
def创建
@用户=构建资源#优点所需
@成员=@user
超级的
终止
感谢@TuteC的支持。在控制器中的
@user=build\u resource
行之后,添加@member=@user
。设计需求@user
当您将优点配置为查找@member
时,是否可以为优点配置添加代码示例,以及相关的控制器操作?您好@TuteC,我在下面添加了“编辑”。再次感谢您的回答;)