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



我的 Devise 注册页面上有一个嵌套表单。 我有一个通过角色模型链接到用户的公司模型。

有关相关文章,请参阅此处:如何在不通过表单传递数据的情况下更新嵌套资源

我可以设置我的验证等,它们工作得很好,但是当为嵌套资源显示错误消息时,它会变得丑陋 - 字面意思是:

例如,如果我提交一份空白表格,我会得到:

>     Email can't be blank
>     Password can't be blank
>     Roles company name can't be blank
>     Roles company address1 can't be blank
前两个是

非嵌套表单元素,后两个是描述性的,但几乎不是用户友好的。 它们应该是"公司名称",并且"公司地址"不能为空等。

我可以在没有大量复杂代码的情况下更改它吗?

更新

我可能必须手动覆盖设计错误消息帮助程序:

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

最新更新