ruby-on-rails - Mongoid + ActiveModel 验证 + I18n,没有正确翻译属性

标签 ruby-on-rails ruby internationalization mongoid activemodel

我正在尝试将我的 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/

相关文章:

ruby-on-rails - RSpec:如何在静态方法上使用 should_receive?

ruby-on-rails - 带有 rspec 的 rails json.jbuilder api -> ActionView::MissingTemplate

ruby-on-rails - Rails 中的自定义 404 操作

java - 在 Java 中放置 i18n 键字符串的位置

php - 一种不同的 Web 应用程序翻译方法

ruby-on-rails - 在 Ruby 中将换行符解释为 markdown(Github Markdown 样式)中的 <br>s

ruby-on-rails - 访问范围时未定义方法 `default_scoped?'

ruby-on-rails - 使用 simple_form 选择值的数字范围

ruby - RVM 安装 MacOS Mavericks

javascript - Web 应用程序国际化,是服务器端还是客户端?