我有一个简单的对象:
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;。)
有没有办法引用人体模型名称而不是属性?
答案 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
...
我认为(直到现在)这是正常的...因为“问题”的公司可以有一个名称,“项目”的公司可以有另一个,等等