Rails 3 ActiveForm国际化(国际化)
问题描述:
我有一个Rails 3.1.1项目使用Gem ActiveFrom ActiveModel的扩展来验证非持久性模型。在我的国际化阳明文件我有以下代码:Rails 3 ActiveForm国际化(国际化)
activemodel:
attributes:
contact_form:
name: "Name"
phone: "Telefon"
errors:
models:
contact_form:
attributes:
name:
blank: "Sie müssen Ihren Namen angeben."
phone:
blank: "Sie müssen eine Telefonnummer angeben."
当我在我看来,这些消息被翻译与@contact_form.errors.full_messages
所有的错误信息,但属性不一样:
Phone Sie müssen eine Telefonnummer angeben.
电话应该被翻译成电话。
当我用持久模型和ActiveRecord做同样的事情时,这是行得通的吗?任何人都可以告诉我从属性转换ActiveRecord和ActiveModel的区别?
答
经过一番研究,我发现了这个问题。这是ActiveFrom中的一个错误,没有使用i18n翻译。我已修复并创建了一个新宝石rails3-active_form
您可以在https://rubygems.org/gems/rails3-active_form找到它。
到此行添加到您的Gemfile:
gem "rails3-active_form", "~> 2.0.0"
这给你的机型:
require "active_form"
class ContactForm < ActiveForm
attr_accessor :name, :email, :contact_number, :address, :purpose
# ...
end