Rails Bug? Внуки не сохраняют, если родители не изменены (вложенная форма) - PullRequest
4 голосов
/ 10 июня 2011

В основном у меня есть 4 уровня вложенных форм.A имеет B имеет C имеет D, причем D является полиморфным (A также имеет D).Я редактирую их все в одной форме, используя JavaScript для добавления / удаления объектов B, C и D.

Проблема в том, что всякий раз, когда я редактирую D без редактирования каких-либо атрибутов из A, B или C, изменения НЕ сохраняются.Это включает добавление D или редактирование атрибутов существующих D.

Если я изменю атрибут в любой из родительских моделей (A, B или C), то изменения сохранятся.

У меня точная та же проблема, что и Пометка многоуровневых вложенных форм как "грязных" в Rails

В этом вопросе было определено, что это ошибка в Rails 2.3.5.Я бегу 2.3.11.Возможно ли, что ошибка была вновь введена?Кто-нибудь знает, как проверить?

С благодарностью ... Спасибо!

1 Ответ

1 голос
/ 12 июля 2011

Стивен, я считаю, что это реальная ошибка в Rails. Я представил отчет об ошибке в один момент, но он никогда не набирал обороты. Я думаю, что проблема нетривиальна, и у меня пока нет времени копаться в коде Rails и найти правильное решение.

Мой обходной путь состоял в том, чтобы просто быть уверенным, что где-то вдоль линии я «испачкал» родительскую запись. Я считаю, что просто быть уверенным, что вы установили значение для родительской записи, поможет, даже если это значение не отличается от значения в БД.

Когда я работал над этой проблемой, я создал jQuery метод динамической родительской / дочерней / внучатой ​​формы. Вы можете найти его здесь, если он может быть вам полезен: http://amillionbetterthings.com/2010/06/24/rails-nested-forms-with-ajax-add-and-remove/.

...