如何本地化 ActiveModel::错误消息

Sig*_*Sig 2 ruby-on-rails rails-i18n ruby-on-rails-5 ruby-on-rails-6

当我验证模型时,出现以下错误

<ActiveModel::Errors:0x007ffecf1c9460 
@base=#<Post id: nil, created_at: nil, label_id: nil, user_id: 3>,
@messages={:label=>["can't be blank"]},
@details={:label=>[{:error=>:blank}]}>
Run Code Online (Sandbox Code Playgroud)

如何自定义错误消息?

根据我的理解,以下应该有效

en:
  activerecord:
    errors:
      models:
        post:
          attributes:
            label:
              blank: do not like it
Run Code Online (Sandbox Code Playgroud)

但是,我仍然收到默认错误消息。

And*_*eko 5

您要本地化的是 ActiveModel,而不是 ActiveRecord:

en:
  activemodel:
    errors:
      models:
        post:
          attributes:
            base:
              label:
                blank: do not like it
Run Code Online (Sandbox Code Playgroud)

来自文档

如果您使用的类包含 ActiveModel 并且不继承自ActiveRecord::Base,请替换activerecordactivemodel