我有一个用户模型
有区别吗
class User < ActiveRecord::Base
validates :name, :presence => true
end
和
class User < ActiveRecord::Base
def validate
errors.add_to_base "name should not be nil" if name.nil?
end
end
我有一个用户模型
有区别吗
class User < ActiveRecord::Base
validates :name, :presence => true
end
和
class User < ActiveRecord::Base
def validate
errors.add_to_base "name should not be nil" if name.nil?
end
end
validates
宏更灵活,因为它还允许您执行以下操作:
validates :name, :format => { :with => /\A[a-zA-Z]+\z/,
:message => "Only letters allowed" }, :length => { :in => 6..20 }
当现有验证不存在时,该validate
方法确实是一种快速简便的自定义验证方法。(当自定义验证变得过于复杂时,您通常应该将它们移动到自定义验证器中并使用validates
宏)。
在http://guides.rubyonrails.org/active_record_validations_callbacks.html上查看更多信息
是的——第一个将无法保存空字符串,而第二个将允许它。