0

我有一个用户模型

有区别吗

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
4

2 回答 2

1

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上查看更多信息

于 2013-01-13T20:12:10.387 回答
0

是的——第一个将无法保存空字符串,而第二个将允许它。

于 2013-01-13T20:08:52.303 回答