我将 has_secure_password 与用户模型一起使用。如果用户通过 oauth 注册,我想将 password_digest 字符串设置为虚拟值。目前,我只在做 facebook 并使用 facebook_id 保存用户。我想添加以下类似的逻辑:
class User < ActiveRecord::Base
has_secure_password
attr_accessible :facebook_id
after_create :update_password_digest_if_from_facebook
def update_password_digest_if_from_facebook
logger.info "here within update_password_digest_if_from_facebook" # this gets called
if self.facebook_id # not seen?
self.password_digest='oauth-account'
self.save
end
logger.info "there is a facebook_id" if self.facebook_id # this isn't called
end
...
end
但是,没有正确调用 update_password_digest_if_from_facebook 中的部分。我可以在这里访问自我吗?
虽然这无疑是一种绕过 has_secure_password 的骇人听闻的方法,但为什么不执行对 self.facebook_id 的调用?看来我现在应该可以访问 self 了。
提前谢谢