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
嵌套在 activerecord
或 activemodel
下,如下所示:
en:
activemodel:
errors:
messages:
common_error: 'is common'
在我当前的应用程序中,我们使用 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
嵌套在 activerecord
或 activemodel
下,如下所示:
en:
activemodel:
errors:
messages:
common_error: 'is common'