在我的rails 3应用程序中,我有一个用户注册表单。我需要并验证用于注册的密码,但是,如果用户使用omniauth连接,我无法检索他们的密码,这会将我带到我的问题中。如何才能使密码字段在某些情况下无法验证?
我知道我可以执行user.save(:validate => false),但这会取消所有验证。
P.S。我看过railscasts第235集&但是,Ryan Bates是用Devise做的,我用自己的登录系统来做。
答案 0 :(得分:1)
您可以编写自己的密码验证,并检查用户是否使用了oauth 请检查此方法:validate(*args, &block)
答案 1 :(得分:1)
您可以在模型中为验证添加条件:
validates_presence_of :password, :unless => :account_from_omniauth?
假设您还定义了方法
def account_from_omniauth?
true if //...your conditions
false
end