Ruby on rails “什么时候?”;“验证”;执行?
我是一个Objective-c程序员,所以我不习惯在方法之外编写代码 关于Rail的Ruby on rails “什么时候?”;“验证”;执行?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是一个Objective-c程序员,所以我不习惯在方法之外编写代码 关于Rail的验证,我有一个分为两部分的问题 考虑以下代码: class User < ActiveRecord::Base attr_accessible :name, :email email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :name, :presence => true,
验证
,我有一个分为两部分的问题
考虑以下代码:
class User < ActiveRecord::Base
attr_accessible :name, :email
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :name, :presence => true,
:length => { :maximum => 50}
validates :email, :presence => true,
:format => { :with => email_regex }.
:uniqueness => true
end
class用户true,
:length=>{:max=>50}
验证:email,:presence=>true,
:format=>{:with=>email_regex}。
:唯一性=>true
结束
验证
方法?实例化用户
实例时或加载其类定义时用户实际何时得到验证?当我保存用户
实例或创建它时
validates :email, :presence => true, :email => true
…在您将
valid\u电子邮件
放入Gemfile
1之后-在保存/创建模型之前,验证作为回调进行。因此,您可以在没有验证的情况下实例化模型。但是,当您试图保存它时,它必须通过验证
2-用户何时真正得到验证?当我保存或创建用户实例时
用户在保存或创建时得到验证。如果需要,您也可以覆盖它。您在rails控制台中尝试过吗?当我有这样一个问题时,我通常会以互动的方式回答,看看会发生什么
./script/console
Loading develoment environment (... )
>> #make a user here and see if you can
如果试图保存用户,但未满足指定的先决条件,则会出现错误
类定义中的所有调用都是在执行类定义时调用的,而不是在创建实例时调用的。值得一提的是,变量email_regex不是实例变量,而是类定义的局部变量。您实际上可以单击+1.:Phmm没有,不知道为什么没有注册。