0

我将 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 了。

提前谢谢

4

0 回答 0