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