Rails 4 I18n:在关联验证消息中使用人员模型名称

时间:2014-06-23 01:41:07

标签: ruby-on-rails-4 internationalization associations

我有一个简单的对象:

class Question < ActiveRecord::Base
  belongs_to :company
  validates :company, presence: true
end

我无法获取验证消息的I18n以使用人工模型名称来显示错误消息。

我已经存储了密钥&#34; activerecord.models.company&#34; as&#34; Firma&#34; (德语),当我Company.model_name.human时,它会按预期返回&#34; Firma&#34; 但它仍然表现为&#34;公司&#34;在错误消息中,直到我存储&#34; activerecord.attributes.question.company&#34;。

这很烦人,因为我需要为验证与公司关联的每个模型添加一个属性键(即&#34; activerecord.attributes.user.company&#34;,&#34; activerecord.attributes.project 。公司&#34;。)

有没有办法引用人体模型名称而不是属性?

1 个答案:

答案 0 :(得分:1)

我认为这是因为在你的形式中,公司的字段依赖于“has_many”关系,通过fields_for helper,也使用模型中的“accepts_nested_attributes”:

我说你有......

表格

<%= question.fields_for companies do |c| %>

... 在模型中

class Question<ActiveRecord::Base
  has_many :companies
  accepts_nested_attributes_for :companies,  :allow_destroy => :true

...

我认为(直到现在)这是正常的...因为“问题”的公司可以有一个名称,“项目”的公司可以有另一个,等等