9

有没有办法更简洁地指定许多这样的验证?

validates :col_a, :presence => {:message => 'col_a cannot be blank'}
validates :col_b, :presence => {:message => 'col_b cannot be blank'}
validates :col_c, :presence => {:message => 'col_c cannot be blank'}

如果必须的话,我会接受一个通用的信息。

4

3 回答 3

26

您可以为验证器提供多个字段名称

validates :col_a, :col_b, :col_c, :presence => true

您可以在同一行中指定多个验证器。

validates :col_a, :col_b, :col_c, :presence => true, :numericality => true

完整的错误消息将包含字段名称。您不需要添加字段名称前缀。如果要使用自定义消息,则:

validates :col_a, :col_b, :col_c, :presence => {:message => "empty value found"}
于 2013-02-21T10:56:58.900 回答
2

您可以使用

validates :col_a, presence: true
validates :col_b, presence: true
validates :col_c, presence: true
于 2013-02-21T03:13:01.157 回答
1

使用 validates_presence_of 助手。

validates_presence_of :col_a

编辑

您可以使用 validates_each 对其进行一些清理。api页面上有一个示例。http://api.rubyonrails.org/classes/ActiveModel/Validations.html

希望有帮助

于 2013-02-20T21:10:55.283 回答