这里在我的代码中(其中使用了设计)我使用户模型可以确认(我不知道它是否相关或有帮助)并且我有一些after_create
回调。根据我的日志,在update_attributing
回调中的实例之前,用户实例有其电子邮件地址,一切正常但在更新之后,它丢失了它的电子邮件地址!
这是我的代码:
after_create :generate_api_key
def generate_api_key
puts "persisted? #{persisted?}"
puts "email1: #{email}"
api_key = ApplicationHelper::KeyGenerator.generate(64)
update_attribute(:api_key, api_key)
puts "email2: #{email}"
end
结果是:
persisted? true
email: foobar@gmail.com
email:
但如果我禁用此after_create
回调,一切正常并保留其电子邮件地址!
是什么原因?
更新:如果我禁用confirmable
,则不会有任何问题。因此问题来自确认!
答案 0 :(得分:0)
我不确定为什么更新后电子邮件地址为空。但我建议你把generate_api_key放在before_create
所以
before_create:generate_api_key
def generate_api_key self.api_key = ApplicationHelper::KeyGenerator.generate(64) end