Rails I18n:如何添加所有模型库错误通用的错误翻译键?

Rails I18n: How to add a error translation key which is common for all model base errors?

在我当前的应用程序中,我们使用 I18n。我必须添加一个 :base 错误键,它应该对所有模型都是通用的。 例如:我会在 en.yml 文件的一个地方添加 :common_error 并按如下方式使用,

@user.errors.add(:base, :common_error)
@post.errors.add(:base, :common_error)
..and so on

我真的很担心是否应该在所有模型中添加 :common_error 键,因为应用程序中存在更多模型。

我当前的 en.yml 文件如下所示,

en-uk:
  activerecord:
    errors:
      <<: *errors
        models:
          user:
            attributes:
              base:
                some_key: ""
          post:
            attributes:
              base:
                some_key: ""

我不确定是否有未找到的简单解决方案。但是任何想法都会被应用。 提前致谢!

干脆不要使用相对翻译键 -

@user.errors.add(:base, t(:common_error) )

如果您将符号传递给 errors.add,翻译将使用模型的范围。

您可以定义额外的错误消息,而不是通过特定的 models 添加错误消息 Rails 使用 messages 键处理其内部错误。

en:
  errors:
    messages:
      common_error: 'is common'

这将适用于 Active Record 和 Active Model 模型。如果您只希望它应用于一个或另一个,您可以将 errors 嵌套在 activerecordactivemodel 下,如下所示:

en:
  activemodel:
    errors:
      messages:
        common_error: 'is common'