validates :presence和之间有什么区别validates_presence_of?通过ActiveModel它看起来他们以相同的方式设置验证.但是,给定以下模型定义:
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
Run Code Online (Sandbox Code Playgroud)
在实例上调用save Account不会验证所有者的存在.但是,如果我使用validates_presence_of它会.
ser*_*erg 23
在Rails 3.x和4.x中 - 现在鼓励使用以下语法:
validates :email, presence: true
validates :password, presence: true
Run Code Online (Sandbox Code Playgroud)
而不是2.x方式:
validates_presence_of :email
validates_presence_of :password
Run Code Online (Sandbox Code Playgroud)