在使用 Devise 创建第二个用户后,Merit 确实停止工作
Merit does cease to work after create a second User with Devise
我对 Merit & Devise 有一个棘手的问题。
当一个成员创建一个帐户(第一个成员)时,他会得到一个徽章,就像下面的规则一样。非常适合他。
grant_on 'members/registrations#create', badge: 'WelcomeIn', model_name: 'Member'
如果我 log_out 并创建另一个成员用于测试,则创建第二个成员,但我在服务器日志中有一个回滚(见下文)。然后没有其他 Merit 规则适用于第二个成员,但 Merit 钢适用于第一个...
实在是不懂,弄了一个下午也没解决...
在一个简短的解释中,当它工作时我在日志中有:
SQL (0.5ms) UPDATE "members" SET "sash_id" = , "updated_at" = WHERE "members"."id" = [["sash_id", 1], ["updated_at", "2018-05-19 17:15:30.716358"], ["id", 3]]
当它不起作用时,我得到一个回滚而不是上面的行:
(0.1ms) ROLLBACK
我log_out 并创建另一个会员进行测试。该成员已创建,但我在服务器日志中有一个回滚(见下文)。然后 Merit 停止为他(第二个成员)工作,但 Merit 为第一个工作...
实在是不懂,弄了一个下午也没解决...
registrations_controller
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' 的设计模型(比如我的 Member),你必须在 Merit 文档设置之后在你的 Controller 中添加一行(见下文)。
registrations_controller
class Members::RegistrationsController < Devise::RegistrationsController
# POST /resource
def create
@user = build_resource # Needed for Merit
@member = @user
super
end
感谢@TuteC的支持
在控制器中的 @user = build_resource
行之后,添加 @member = @user
。设计需要 @user
,而您的优点配置为寻找 @member
.
我对 Merit & Devise 有一个棘手的问题。 当一个成员创建一个帐户(第一个成员)时,他会得到一个徽章,就像下面的规则一样。非常适合他。
grant_on 'members/registrations#create', badge: 'WelcomeIn', model_name: 'Member'
如果我 log_out 并创建另一个成员用于测试,则创建第二个成员,但我在服务器日志中有一个回滚(见下文)。然后没有其他 Merit 规则适用于第二个成员,但 Merit 钢适用于第一个...
实在是不懂,弄了一个下午也没解决...
在一个简短的解释中,当它工作时我在日志中有:
SQL (0.5ms) UPDATE "members" SET "sash_id" = , "updated_at" = WHERE "members"."id" = [["sash_id", 1], ["updated_at", "2018-05-19 17:15:30.716358"], ["id", 3]]
当它不起作用时,我得到一个回滚而不是上面的行:
(0.1ms) ROLLBACK
我log_out 并创建另一个会员进行测试。该成员已创建,但我在服务器日志中有一个回滚(见下文)。然后 Merit 停止为他(第二个成员)工作,但 Merit 为第一个工作...
实在是不懂,弄了一个下午也没解决...
registrations_controller
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' 的设计模型(比如我的 Member),你必须在 Merit 文档设置之后在你的 Controller 中添加一行(见下文)。
registrations_controller
class Members::RegistrationsController < Devise::RegistrationsController
# POST /resource
def create
@user = build_resource # Needed for Merit
@member = @user
super
end
感谢@TuteC的支持
在控制器中的 @user = build_resource
行之后,添加 @member = @user
。设计需要 @user
,而您的优点配置为寻找 @member
.