validates :presence
和validates_presence_of
有什么区别?通过ActiveModel
看,他们看起来像他们设置验证相同的方式。不过,考虑到下面的模型定义:Rails 3:验证:presence => true vs validates_presence_of
class Account < ActiveRecord::Base
has_one :owner_permission, :class_name => 'AccountPermission', :conditions => { :owner => true, :admin => true }
has_one :owner, :class_name => 'User', :through => :owner_permission, :source => :user
validate :owner, :presence => true
validates_associated :owner
end
调用节省的Account
实例不验证所有者的存在。虽然,如果我使用validates_presence_of
它会。
感谢。我现在觉得很愚蠢。 – 2011-03-25 19:23:12
我可以加入你:) – 2012-01-26 02:25:22
但是为什么像'Agile Web Development with Rails'这样的书中没有提到验证的validates_whatever_of方法,所有的验证示例都是使用'validates:attr,:whatever => true'完成的? – Ansd 2012-04-18 01:33:00