after_create用于在具有has_secure_password的oauth用户的情况下设置虚拟密码_digest

时间:2013-02-20 18:37:12

标签: ruby-on-rails callback ruby-on-rails-3.2 after-create

我正在使用带有用户模型的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的调用?在这一点上,我似乎应该可以访问自己。

事先提前

0 个答案:

没有答案