修改en.yml文件以验证错误消息rails 3

Ric*_*wis 3 ruby-on-rails ruby-on-rails-3 rails-i18n

我从来没有真正处理或理解en.yml文件,因为我以前没有使用它,今天我正在尝试更改它并自定义表单提交失败时显示的验证错误消息

我有一个食谱模型和一个提交食谱的表格.目前我的en.yml文件看起来像这样

  en:  
   activerecord:
    models: 
     recipe: 

    attributes:
     user:
      email: 
       errors:
         models:
          recipe:
           attributes:
            dish_name:
             blank: "Dont forget to give your Recipe a Dish Name"
Run Code Online (Sandbox Code Playgroud)

现在显然这是错误的,我正在寻找一些关于如何布局文件的帮助,也许是对正在发生的事情的解释,我已经阅读了文档,但是当涉及到rails时,它的技能水平有点过高.

此外,如果dish_name的验证失败,即它的空白,我收到此错误消息

Dish name Dont forget to give your Recipe a Dish Name
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏

谢谢

Chr*_*erg 8

您需要覆盖错误消息的默认格式:

en:
  errors:
    format: "%{message}"

  activerecord:
    errors:
      models: 
        recipe: 
          attributes:
            dish_name:
              blank: "Dont forget to give your Recipe a Dish Name"
Run Code Online (Sandbox Code Playgroud)

然后你应该得到所需的meessage:

Dont forget to give your Recipe a Dish Name
Run Code Online (Sandbox Code Playgroud)

请记住,这也将覆盖其他ActiveRecord模型的格式.您还需要为要支持的任何其他语言环境指定格式,否则rails将默认显示该属性.