我正在使用带有用户模型的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的hacky方法,为什么不执行对self.facebook_id的调用?在这一点上,我似乎应该可以访问自己。
事先提前