0

如果我想在所有验证中显示相同的错误消息,我该如何编码?

presence我有 3 个标准,例如uniquenesslength
我想要同样的错误信息。
但是我的代码仅在与长度错误匹配时才有效。
我如何申请所有(其他两个)?

validates :title,   
    :presence => true,   
    :uniqueness => true,   
    :length => { :maximum => 100, :message => "Must be unique, and has to be less than 100 characters"}
4

2 回答 2

1

我相信有一种方法可以做到这一点validates,但如果我遇到这个问题,我可能只是编写一个自定义验证:

validate :title_format

def title_format
  if title.blank? || title.length > 100 || Post.where(:title => title).exists? 
    errors.add(:title, "Must be unique and less than 100 characters")
  end
end

(用您的实际型号名称替换 Post,自然。)

顺便说一句,您的消息说“少于 100 个字符”,但您实际上是在验证“少于或等于 100 个字符”。您可能希望选择其中一个并保持一致。

于 2013-01-22T06:10:10.297 回答
1

它可以通过验证来完成

validates :title, 
      :presence => {:message => "Must be unique, and has to be less than 100 characters" },
      :uniqueness => {:message => "Must be unique, and has to be less than 100 characters"},
      :length => { :maximum => 100, :message => "Must be unique, and has to be less than 100 characters"}
于 2013-01-22T06:17:54.283 回答