26 validation model ruby-on-rails
我有一个用户模型,它有一个电子邮件和一个密码字段.为安全起见,这些可能并不相同.如何在我的模型中定义它?
kle*_*lew 29
validate :check_email_and_password
def check_email_and_password
errors.add(:password, "can't be the same as email") if email == password
end
Run Code Online (Sandbox Code Playgroud)
但请记住,将密码存储为纯文本是个坏主意.你应该把它存储起来.尝试一些身份验证插件,如authlogic或Restful身份验证.
hlc*_*lcs 11
新方法:
validates :password, exclusion: { in: lambda{ |user| [user.email] } }
Run Code Online (Sandbox Code Playgroud)
要么:
validates :password, exclusion: { in: ->(user) { [user.email] } }
Run Code Online (Sandbox Code Playgroud)
您可以使用自定义验证方法来检查此问题.
class User < ActiveRecord::Base
# ...
def validate
if (self.email == self.password)
errors.add(:password, "password cannot equal email")
errors.add(:email, "email cannot equal password")
end
end
end
Run Code Online (Sandbox Code Playgroud)