显示用户友好的设计嵌套验证错误

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 方法或者你在父模型本身中添加嵌套模型验证。