rails中不同类型的验证

时间:2013-01-13 20:05:20

标签: ruby-on-rails validation

我有一个用户模型

之间有区别吗?
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

2 个答案:

答案 0 :(得分: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

了解详情

答案 1 :(得分:0)

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