- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想修复我的网站生成的一些错误消息。这是问题所在:
class Brand < ActiveRecord::Base
validates_presence_of :foo
...
end
我的目标是发出一条消息“需要票证描述”而不是“需要 Foo”或者可能不是空白,或者其他什么。
之所以如此重要,是因为假设之前该字段是 ticket_summary。那太棒了,服务器被编码为使用它,但现在由于疯狂的商业分析师,已经确定 ticket_summary 是一个糟糕的名字,应该是 ticket_description。现在我不一定想让我的数据库由用户对字段名称的要求驱动,特别是因为它们可以在不更改功能的情况下频繁更改。
是否已经有提供此功能的机制?
澄清
:message => 似乎不是正确的解决方案,:message 会给我“Foo [message]”作为错误,我希望更改消息生成的字段名称,而不是实际的消息本身(虽然我将满足于必须改变整个事情)。
最佳答案
将此添加到您的 config/locales/en.yml
文件:
en:
activerecord:
errors:
# global message format
format: #{message}
full_messages:
# shared message format across models
foo:
blank: Ticket description is required
# model specific message format
brand:
zoo:
blank: Name is required
现在更改您的验证消息以引用新的消息格式:
validates_presence_of :bar, :message => "Empty bar is not a good idea"
validates_presence_of :foo, :message => "foo.blank"
validates_presence_of :zoo, :message => "brand.zoo.blank"
让我们试试代码:
b = Brand.new
b.valid?
b.errors.full_messages
#=> ["Ticket description is required",
# "Empty bar is not a good idea",
# "Name is required"]
如上所示,您可以在三个级别自定义错误消息格式。
1) 全局的所有 ActiveRecord 错误信息
activerecord:
errors:
format: #{message}
2) 跨模型共享错误消息
activerecord:
errors:
full_messages:
foo:
blank: Ticket description is required
3) 模型特定消息
activerecord:
errors:
full_messages:
brand:
zoo:
blank: Name is required
关于ruby-on-rails - ActiveRecord 验证...自定义字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521383/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!