Rails: нет 'field_with_errors' при использовании 'fields_for'

Итак, у меня есть эта вложенная модель «организации» в моей модели «пользователь». Модель пользователя — это модель, основанная на устройстве, и организация принадлежит пользователю.

Я создал форму для него, и все работает нормально. Даже 'devise_error_messages!' выводить все правильно.

Проблемы только с локализацией и field_with_errors-div..

Мне удалось правильно локализовать, сделав это в моем файле локали:

nl:
  activerecord:
    attributes:
      user:
        contact:
          account_number: "bankrekening nummer"

Конечно, я просто хочу, чтобы он работал без «контакта» в списке «пользователей».

Но серьезная проблема, с которой я столкнулся, заключается в том, что div field_with_errors обычно оборачивает поля с ошибками. Я использую его для создания красных меток на полях с ошибками. Они работают для пользовательского класса, но они выиграли не работает для вложенных форм..

Гугл ничем не помогает, как будто ни у кого нет такой проблемы, кроме меня.

Это вообще возможно?

Если это так, можете ли вы указать мне правильное направление для этого?

Спасибо!


person Tim Baas    schedule 21.05.2011    source источник
comment
Вы нашли решение для этого? У меня возникли проблемы с вставкой field_with_errors для полей в области fields_for.   -  person James P McGrath    schedule 09.09.2011


Ответы (2)


У меня такая же проблема. Используйте это, и это работает:

<%= f.fields_for :organization, (user.organization || user.build_organization) do |organization_form|
  ...
<% end %>

Обратите внимание на часть user.organization ||: если организация уже построена, вам не следует перестраивать ее, иначе вы потеряете свои ошибки, а field_with_errors-div не появится.

person collimarco    schedule 16.07.2012

У меня тоже была такая же проблема, и я исправил ее, добавив validates_associated :child_model в parent модель.

person bor1s    schedule 26.09.2011