Rails 4 I18n: использование имени человеческой модели в сообщении проверки соответствия
У меня есть простой объект, как:
class Question < ActiveRecord::Base
belongs_to :company
validates :company, presence: true
end
и я не могу получить I18n сообщения проверки, чтобы использовать имя модели человека для сообщения об ошибке.
Я сохранил ключ "activerecord.models.company" как "Firma" (немецкий), и когда я Company.model_name.human
Возвращает "Фирму", как и ожидалось. Но он по-прежнему отображается как "Компания" в сообщении об ошибке, пока я не сохраню "activerecord.attributes.question.company".
Это раздражает, потому что мне нужно добавить ключ атрибута для каждой модели, которая проверяет связь с Компанией (т.е. "activerecord.attributes.user.company", "activerecord.attributes.project.company").
Есть ли способ ссылаться на имя модели человека вместо атрибута?
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
...
Я думаю (до сих пор) это нормально... потому что у компаний "Вопросы" может быть одно имя, а у компаний "Проектов" может быть другое, и так далее.