我在徘徊,为什么在书中Agile Web Development with Rails
没有提到validates_whatever_of
验证方式,所有验证示例都是使用validates :attr, :whatever => true
? 我刚开始学习 Rails,这让我很困惑!
问问题
1131 次
2 回答
2
validates
语法只是同一件事的新快捷方式。当您验证一堆具有相似限制的属性时,它特别有用。所以这:
validates_presence_of :one
validates_presence_of :two
validates_presence_of :three
validates_presence_of :four
可以简化为
validates :one, :two, :three, :four, :presence => true
它也是自定义验证器的一个很好的、一致的接口。
于 2012-04-18T01:44:13.377 回答
2
在 Rails 2.x 中,您可能会这样说:
validates_presence_of :user_name
在 3.x 中,您现在可以:
validates :username, :presence => true
我认为仍然支持旧方式,但已弃用。
这实际上只是表达同一事物的不同方式。虽然较旧的书籍和教程将使用前者,但将其转换为 3.x 风格应该相当简单。例如,参见http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates 。
于 2012-04-18T01:45:16.753 回答