我在
entities
表中有一个名为 reporting_name
的属性。我需要根据不同站点的业务逻辑显示两个不同的错误消息。如果单个实体的验证失败,则错误消息应为“报告名称为空”。对于法人实体,应为“法定全名为空”。我正在使用 Rails 翻译来处理错误消息。实现这一点的最佳方法是什么?
# en.yml
activerecord:
errors:
models:
entities:
attributes:
reporting_name:
blank: 'Reporting Name is blank'
您可以使用
:message
选项 (https://guides.rubyonrails.org/active_record_validations.html#message)
validates :attribute,
presence: {message: ->(obj, data) { 1 == 2 ? "One message" : "Other message" } }
为了简单起见,我对消息字符串进行了硬编码,但您可能希望将其替换为 I18n 方法。