2012-07-10 38 views
2

嵌套表单很棒,但我注意到它有时会导致出现奇怪格式的错误消息。Rails 3:为表单验证修改错误消息前缀

举一个具体的例子: 我有一个表格可以让别人创建一个新的帐户。每个帐户都有一个或多个用户(has_many)。注册表格使用帐户模型创建表单,并且还包含一些用于创建第一个用户(因为帐户必须至少有一个用户)的字段。换句话说,它是一种嵌套形式。

因为一个帐户可以有很多用户,所以错误消息的前缀是“users”而不是“user”。此外,错误消息使用关系名称(用户)和属性名称(例如“密码”)来构造错误消息。这会导致错误消息,如“用户电子邮件不能为空”。而不是“电子邮件不能为空”。

有没有办法自定义错误信息或从错误信息中省略“用户”?

回答

2

在您的验证的message参数中,您可以添加一个脱字符,它将删除默认消息。

:message => "^ Email can't be blank" 
+0

感谢您的回答,凯尔。这看起来是一个很好的解决方案,但是有没有办法获得相同的效果而不提供每个验证的消息,因为我希望避免这种情况? – 2012-07-10 17:33:02

+0

你可以研究覆盖activerecord yml,http://stackoverflow.com/questions/808547/fully-custom-validation-error-message-with-rails http://stackoverflow.com/questions/3808361/where-are -default-validation-error-messages-in-rails-3-0 – 2012-07-10 18:01:34

+4

插入符号似乎不再起作用了......是否已被其他内容取代? – 2013-02-20 03:38:47