禁用密码验证

Disable password validation

如果看到用户正在尝试使用 Facebook 登录,我希望在登录时不需要密码。但是,Authlogic(显然)在登录时会检查密码。我怎么能在这种情况下禁用密码验证?

下面是我正在使用的代码的一小段代码。 login_params 根据用户登录的方法而变化——通过表单字段或 OmniAuth。

login_params = if facebook_login?
   if homeowner = get_facebook_user
       {
       email: homeowner.email,
       password: homeowner.password
       }
       end
    else
       user_session_params
       end

您可以在验证中使用 lambda 来有条件地 运行 它。例如:

validates :password, presence: true, if: lambda { !isNotFacebookLogin? }