【问题标题】:Rails 4 after_validation Error Messages Generic 'is invalid'Rails 4 after_validation 错误消息通用“无效”
【发布时间】:2014-06-06 10:22:08
【问题描述】:

如何在 Rails 4 中删除通用的“无效”错误消息?

例如,如果我有一个客户端模型,以名称和密码作为属性,我会得到:

Client name can not be blank
Client password can not be blank
Client is Invalid

Client is invalid 并不是真正需要的,但我似乎无法摆脱它们。

我从这里尝试了各种建议:

Rails: Getting rid of generic "X is invalid" validation errors

但没有一个工作。我正在使用语言环境来制作我想要说出正确文本的错误消息,但就是无法敲击通用的错误消息。

有什么想法吗?

谢谢

【问题讨论】:

  • 您什么时候看到这些 - 是在调用特定帮助程序以列出错误消息时?

标签: ruby-on-rails custom-errors


【解决方案1】:

更改 Rails 内置文本的最佳方法是通过特定于区域设置的语言规则,即您的 config/locales/en.yml 文件。

有时,找到您想要的文本的关键路径可能会很棘手。这是我不久前做的一个项目的一个例子。这是一个 rails2 项目,所以键的结构可能已经改变了。

#in config/locales/en.yml
en:
  activerecord:
    errors:
      full_messages:
        format: "{{message}}"    
      #define standard error messages, which we can overide on per model/per attribute basis further down
      messages:
        record_invalid: "Validation failed: {{errors}}"    
      models:
        user_session:
          blank: "{{attribute}} can not be blank"
          attributes:
            login:
              invalid: "Please enter your user name"   
            password:
              invalid: "Please note that passwords are case sensitive"  
        user:
          blank: "{{attribute}} can not be blank"
          attributes:
            login:
              invalid: "User Name can only contain letters and numbers and -, @, . or _ symbols"   
              available: username available
              unavailable: username already taken  

编辑:i18n 文档这一部分中的链接向您展示了 rails 的内置 en.yml 结构,因此要进行更改,您可以将内置内容复制到您自己的 en.yml 中,并删除除您的位之外的所有内容'已经改变(为了清楚起见)。

http://guides.rubyonrails.org/i18n.html#configure-the-i18n-module

【讨论】:

  • 我已经成功地更改了我想要的错误消息的文本,我只需要完全删除通用验证错误。不过谢谢
  • 啊,我明白了——对不起。您是否在发布后在您的问题中添加了“我正在使用语言环境来制作我想要说出正确文本的错误消息”,还是我没有注意到?
  • 你错过了——不过我确实写在一个有趣的地方!无论如何,我实际上已经通过内联错误消息解决了这个问题,它自动不显示通用错误消息。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2016-07-22
相关资源
最近更新 更多