我正在尝试将我的 Booking
模型的属性国际化
来 self 的 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
来检索错误消息。
最佳答案
修复它:
mongoid:
attributes:
<<: *attributes
似乎即使 Mongoid::Document
包含 ActiveModel::Validation
,您也必须为翻译定义一个单独的键。
关于ruby-on-rails - Mongoid + ActiveModel 验证 + I18n,没有正确翻译属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339323/