如何在 ActiveRecord 之外将 I18N 翻译与 ActiveModel::Validations 一起使用?

cor*_*ard 2 ruby ruby-on-rails activemodel rails-i18n

Rails 指南提供的 I18n 范围特定于ActiveModel::Validations内部ActiveRecord对象的使用。例如:

\n\n
en:\n  activerecord:\n    errors:\n      models:\n        some_model:\n          attributes:\n            name:\n              blank: "Please enter your full legal name."\n
Run Code Online (Sandbox Code Playgroud)\n\n

ActiveModel::Validations以这种方式使用时,这将不起作用:

\n\n
class SomeModel\n  include ActiveModel::Validations\n  validates :name, presence: true\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

相反,使用框架默认值“\xe2\x80\x9ccan\t be Blank”。

\n\n

如何解决这个问题?

\n

cor*_*ard 7

替换activemodel可以activerecord修复此问题并允许所有后续范围正常工作。例子:

en:
  activemodel: # <---
    errors:
      models:
        message:
          attributes:
            name:
              blank: "Please enter your name."
Run Code Online (Sandbox Code Playgroud)