【发布时间】:2011-09-12 17:19:48
【问题描述】:
我有一个看起来像这样的用户模型:
class User < TwitterAuth::GenericUser
acts_as_authentic {|c|
c.login_field = :email
c.validate_email_field = false
c.validate_password_field = false
}
end
它使用 TwitterAuth 和 Authlogic 插件。
我想选择性地禁用验证 c.validate_email_field = false 基于用户是否使用 twitter 通过普通电子邮件注册。
- With email and password registration, the validations needs to be on.
-twitter does not have email or password fields, the validation needs to be off.
When I disable validation, the authLogic user registration using email and password fails:
unknown attribute: password_confirmation
I tried to selectively disable validation if attribute 'twitter_id' is present.
c.merge_validates_confirmation_of_password_field_options({:unless => :skip_password_validation?})
def skip_password_validation
!attribute_present?('twitter_id')
end
这不起作用,因为无论是否使用,表 User 中都存在属性“twitter_id”。
如何选择性地启用电子邮件和密码验证? i,e 仅在不使用 twitter oAuth 时启用验证。
感谢您的帮助
【问题讨论】:
标签: ruby-on-rails validation oauth authlogic