Направляющие I18n accepts_nested_attributes_for и error_messages_for

У меня есть две модели

class SurveyResponse
  has_many :answers, :class_name => SurveyResponseAnswer.name
  accepts_nested_attributes_for :answers
end

class SurveyResponseAnswer
  belongs_to :survey_response
  validates_presence_of :answer_text
end

В моей вложенной форме, если проверка перестала работать, я отобразил эту ошибку на экране:

"ответы отвечают, что текст не может быть пробелом"

Я настроил свои названия атрибута несколько успешно использование направляющих I18n. Это не ведет себя точно, как я ожидал бы все же. yml файл ниже не влияет, как название атрибута печатается в error_messages_for

en: 
  activerecord:
    models:
      survey_response:
        answers: "Response"

Но если из сценария/консоли я пробую
SurveyResponse.human_attribute_name ("ответы")

Я получаю ожидаемый результат "Ответа".

То, что я хотел бы сделать, имеют сообщение об ошибке проверки, скажите:

"Текст ответа ответа не может быть пробелом". Какие-либо идеи, что я должен зафиксировать?

17
задан Mike 17 June 2010 в 04:56
поделиться

1 ответ

Попробуйте следующее:

en: 
  activerecord:
    models:
      survey_response:
        answers:
          answer_text: "Response"

Я использую Rails 3, и это работает для меня (мой файл i18n немного отличается, в нем используются "атрибуты" вместо моделей. Я не знаю, это работает в 2.3)

en: 
  activerecord:
    attributes:
      survey_response:
        answers:
          answer_text: "Response"

До этого я пытался создать атрибут в yml под названием «answers_answer_text», но он не работал.

Надеюсь, это решит вашу проблему.

14
ответ дан 30 November 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: