Rails 3使用自定义消息验证许多列的存在

dan*_*anh 6 validation ruby-on-rails ruby-on-rails-3

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

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'}
Run Code Online (Sandbox Code Playgroud)

如果必须的话,我会满足于通用信息.

Har*_*tty 22

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

validates :col_a, :col_b, :col_c, :presence => true
Run Code Online (Sandbox Code Playgroud)

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

validates :col_a, :col_b, :col_c, :presence => true, :numericality => true
Run Code Online (Sandbox Code Playgroud)

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

validates :col_a, :col_b, :col_c, :presence => {:message => "empty value found"}
Run Code Online (Sandbox Code Playgroud)