与facebook连接的Authlogic

时间:2010-08-06 17:05:02

标签: ruby-on-rails facebook authlogic

我已经在我的rails应用程序中使用authlogic成功集成了facebook connect。

问题是如果尝试更新facebook用户的个人资料详细信息,则验证错误是密码字段不能为空。

为了解决上述问题,我在用户模型中添加了以下内容。

  before_validation :update_authlogic_config

  def update_authlogic_config
    validate_password_field = !facebook_user?
    validate_email_field = !facebook_user?
  end

  def facebook_user?
    !facebook_uid.blank?
  end

添加此代码后,没有验证错误,但验证仍然失败。

user.valid? retruns false
user.errors.size return 0

如果我在控制器中

@user.update_attributes!(params[:user])

引发的异常是

  

验证失败:

没有任何特定错误。

1 个答案:

答案 0 :(得分:0)

我找到了一个黑客。

为facebook用户填充了一些值的密码字段。无论如何,这些值都不会被使用,所以它可以工作。

def before_connect(fb_user)
  self.crypted_password = "test"
  self.password_salt = "test_salt"
end