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