显示用户友好的设计嵌套验证错误
Display user friendly Devise nested validation errors
我的 Devise 注册页面上有一个嵌套表单。我有一个通过角色模型链接到用户的公司模型。
在这里查看相关的 post:
我可以设置我的验证等,它们工作得很好,但是当为嵌套资源显示错误消息时,它变得很难看 - 字面意思:
例如,如果我提交空白表格,我会得到:
> Email can't be blank
> Password can't be blank
> Roles company name can't be blank
> Roles company address1 can't be blank
前两个是非嵌套表单元素,后两个是描述性的,但对用户来说很不友好。它们应该是 'Company Name' 并且 'Company Address' 不能为空等
我可以在没有大量复杂代码的情况下更改它吗?
更新
我可能必须手动覆盖 Devise 错误消息助手:
https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb
无论如何我都想清理格式。
更新 2
我做了一些挖掘,发现了这个:
http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
根据我收集到的信息,我应该无法在我的 en.yml 中做到这一点:
en:
activerecord:
attributes:
user/role/company:
address1: "First Name"
name: "Company Name"
我试过了,但到目前为止运气不好。
更新 3
我越挖越发现。这可能是最好的解决方案:
https://github.com/jeremydurham/custom-err-msg
此 gem(尽管多年未维护)可让您完全删除模型属性。我可能会走这条路,无论如何只定义自定义错误消息。
"custom-err-msg"Custom error Gem 并不真正依赖于 rails 版本。所以最好使用或者你自己覆盖 full_messages 方法或者你在父模型本身中添加嵌套模型验证。
我的 Devise 注册页面上有一个嵌套表单。我有一个通过角色模型链接到用户的公司模型。
在这里查看相关的 post:
我可以设置我的验证等,它们工作得很好,但是当为嵌套资源显示错误消息时,它变得很难看 - 字面意思:
例如,如果我提交空白表格,我会得到:
> Email can't be blank
> Password can't be blank
> Roles company name can't be blank
> Roles company address1 can't be blank
前两个是非嵌套表单元素,后两个是描述性的,但对用户来说很不友好。它们应该是 'Company Name' 并且 'Company Address' 不能为空等
我可以在没有大量复杂代码的情况下更改它吗?
更新
我可能必须手动覆盖 Devise 错误消息助手:
https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb
无论如何我都想清理格式。
更新 2
我做了一些挖掘,发现了这个:
http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
根据我收集到的信息,我应该无法在我的 en.yml 中做到这一点:
en:
activerecord:
attributes:
user/role/company:
address1: "First Name"
name: "Company Name"
我试过了,但到目前为止运气不好。
更新 3
我越挖越发现。这可能是最好的解决方案:
https://github.com/jeremydurham/custom-err-msg
此 gem(尽管多年未维护)可让您完全删除模型属性。我可能会走这条路,无论如何只定义自定义错误消息。
"custom-err-msg"Custom error Gem 并不真正依赖于 rails 版本。所以最好使用或者你自己覆盖 full_messages 方法或者你在父模型本身中添加嵌套模型验证。