在我目前的应用程序中,我们使用I18n。我必须添加一个:基本错误键,它应该适用于所有型号。
例如:我会在:common_error
文件的一个位置添加en.yml
,并使用如下,
@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: ""
我不确定是否有一个我找不到的简单解决方案。但任何想法都会受到关注。 提前谢谢!
答案 0 :(得分:1)
只是不要使用相对翻译键 -
@user.errors.add(:base, t(:common_error) )
如果您将符号传递给errors.add,则翻译将使用模型的范围。
答案 1 :(得分:1)
您可以通过使用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'