【问题标题】:Mongoid + ActiveModel validation + I18n, not properly translating attributesMongoid + ActiveModel 验证 + I18n,没有正确翻译属性
【发布时间】:2013-03-11 13:04:23
【问题描述】:

我正在尝试将我的Booking 模型的属性国际化

来自我的 fr.yml:

  attributes: &attributes
    booking:
      first_name: 'Prénom'
      last_name: 'Nom'
      email: "Email"
      phone: 'Téléphone'

  activemodel:
    errors:
      <<: *errors
    attributes:
      <<: *attributes

当我生成一个 Rails 控制台时:

2.0.0p0 :011 > I18n.t(:activemodel)[:attributes][:booking]
 => {:first_name=>"Prénom", :last_name=>"Nom", :email=>"Email", :phone=>"Téléphone"}

但是:

2.0.0p0 :013 > Booking.human_attribute_name('first_name')
 => "First name"

但是,在我的网络服务器上,错误仍然是英语+法语,例如:

"名字 doit être rempli(e)"

我错过了什么?我正在使用 mongoid、ruby 2.0.0 和 rails 3.2.11。

请注意,我使用model.errors.full_messages 来检索错误消息。

【问题讨论】:

    标签: ruby-on-rails ruby internationalization mongoid activemodel


    【解决方案1】:

    修复它:

    mongoid:
      attributes:
        <<: *attributes
    

    看来即使Mongoid::Document包含ActiveModel::Validation,你也得为翻译定义一个单独的key。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多