dau*_*777 21 validation ruby-on-rails
使用Rails验证助手 -
validates_xxx_of :the_column, :message => "my message"
Run Code Online (Sandbox Code Playgroud)
将生成验证消息:
the_column我的消息
有没有办法关闭列名称的包含?(用任何验证帮助方法替换xxx)
Har*_*wig 16
我知道这个问题很老了.但仅供参考,万一其他人偶然发现它.
至少在Rails 3.0.x中(不确定早期版本)你可以使用RadBrad指示的前导^,而不需要任何gems /插件.
小智 7
看看这里的代码:
https://github.com/rails/rails/blob/master/activemodel/lib/active_model/errors.rb#L374
因此,您可以在en.yml文件中设置:
en:
errors:
format: '%{message}'
Run Code Online (Sandbox Code Playgroud)
这意味着您还需要在其他地方设置完整的错误消息,但我想这是更可取的.注意,我发现这个令人困惑,错误格式不在ActiveRecord命名空间中,我通常将其余的错误消息放入其中.
小智 6
有一个客户错误消息gem应该做你想要的
https://github.com/jeremydurham/custom-err-msg
它允许您覆盖正常的消息构造,并自己定义完整的消息,如下所示:
:message =>"^您的电子邮件地址似乎相当混乱,请再试一次"
注意^字符,告诉rails不要预先添加任何内容,只需使用完全按照定义的消息,(除了它删除^)
如果你没有放一个前导^,那么你得到正常的rails生成错误信息.
我这样做的方法是覆盖所有消息,而不是使用 Rails 表单助手来显示错误消息。
这看起来工作量很大,但实际上有一些好处。您可以完全控制消息,然后可以实现自定义表单生成器,该生成器可以将错误消息内联,这对用户来说更好。
你像这样使用它:
validates_uniqueness_of :foobar, :message => "The foobar isn't unique."
full_messages然后打印错误信息时不要使用。