Mongoid + ActiveModel验证+ I18n,没有正确翻译属性

时间:2013-03-11 13:04:24

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

我正在尝试将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êtrerempli(e)”

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

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

1 个答案:

答案 0 :(得分:1)

修正了它:

mongoid:
  attributes:
    <<: *attributes

即使Mongoid::Document包含ActiveModel::Validation,您也必须为翻译定义一个单独的密钥。