1

我在徘徊,为什么在书中Agile Web Development with Rails没有提到validates_whatever_of验证方式,所有验证示例都是使用validates :attr, :whatever => true? 我刚开始学习 Rails,这让我很困惑!

4

2 回答 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 回答