Rails 4中的自定义验证消息

时间:2014-02-20 18:55:22

标签: ruby-on-rails validation ruby-on-rails-4

我很清楚有问题要问这个,但我不允许对它们中的任何一个发表评论,无论如何我的问题与那些有点不同。我试图从验证中获取自定义错误消息,其中自定义错误消息不必以要验证的属性开头。

我的属性名为“form_person”,表示填写表单的人的姓名(我正在处理的网站的法律要求)。所以我有

validates_presence_of :form_person, message: "^We need to know who is filling in this form (your name)"

这曾经起作用,因为在“^”会导致消息被添加到errors[:base],但现在它不是,我得到“表格人^我们需要知道谁填写这个表格(你的名字)“,......好吧......不太乐于助人。我已经看到了2年前的解决方案,涉及到本地化文件的混乱,但老实说,这是整个世界的最后一个地方,我或其他任何员工可能会寻找验证消息,我们根本没有本地化。我知道我可以编写一个自定义验证器方法,这可能就是我要做的事情,但我不喜欢这样做,因为它很乱,并且用不必要的方法不必要地污染了模型命名空间。已经有validates_presence_of方法了!我已经查看了轨道指南,包括边缘指南,除了通过自定义验证器或(ugh)单独的自定义验证类之外,没有提及任何方法。只是检查一个属性的存在似乎不适合编写一个完整的单独的验证器类,所以我怎样才能在一个简洁的行中方便地做到这一点,就像我以前一样?

1 个答案:

答案 0 :(得分:7)

试试这个:

validates :form_person, :presence => {message: "^We need to know who is filling in this form (your name)"}