我已经在我的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])
引发的异常是
验证失败:
没有任何特定错误。
答案 0 :(得分:0)
我找到了一个黑客。
为facebook用户填充了一些值的密码字段。无论如何,这些值都不会被使用,所以它可以工作。
def before_connect(fb_user)
self.crypted_password = "test"
self.password_salt = "test_salt"
end