nested_form - действие редактирования не показывает вложенные элементы

У меня есть nested_form, где вложенные элементы динамически добавляются и удаляются в форме с использованием Javascript.

У меня вся эта штука работает на действие new - элементы добавляются и уничтожаются, и все сохраняется как надо.

При доступе к действию edit я получаю правильный родительский элемент, но дочерние элементы не отображаются — вместо этого представление edit дразнит меня затянувшейся (и бесполезной) кнопкой «Добавить вариант».

Где я могу ошибаться здесь?


person sscirrus    schedule 25.04.2011    source источник
comment
Без источника помочь очень сложно. Детей нет? что значит "добавить опцию"? Это то, что вы добавляете? опции? Пожалуйста, покажите представление и код контроллера, который собирает данные.   -  person nathanvda    schedule 26.04.2011


Ответы (4)


У меня была точно такая же проблема (у меня сильно выпали волосы). Я был рад найти этот вопрос, похоже, больше ни у кого его не было. Мое решение было «тривиальным»: я обновился с Rails 3.0.0 до 3.0.6 (3.0.7 вызвал еще одну проблему) на моем Windows Box.

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

Плиз, подскажите...

С уважением, Дирк

person dirkr70    schedule 06.05.2011

попробуйте кокон драгоценных камней, он действительно удобен и позаботится о вложенных формах javascript для вас!

Вот ссылка http://www.dixis.com/?p=454&lang=nl

person Thijs    schedule 25.04.2011
comment
Я ценю это предложение. Я уже много времени потратил на nested_form, поэтому решение этой конкретной проблемы было бы более полезным. - person sscirrus; 25.04.2011

У меня была точно такая же проблема, и я обнаружил, что это было связано с блоком «fields_for», который создал вложенные элементы. Например, у меня было:

<%= nested_form_for(@recipe) do |f| %>

  # Stuff for parent...

  <% f.fields_for :recipe_ingredients do |ingredient_form| %>
    # Stuff for nested form...
  <% end %>
  # etc.

Эта строка должна быть блоком <%=, а не блоком <%, как указано выше, т.е.

<%= nested_form_for(@recipe) do |f| %>

  # Stuff for parent...

  # The following line has changed
  <%= f.fields_for :recipe_ingredients do |ingredient_form| %>
    # Stuff for nested form...
  <% end %>
  # etc.

Этого было достаточно, чтобы распечатать существующие вложенные атрибуты в форме редактирования.

person Jon Cairns    schedule 12.10.2012

Проверьте свою форму для редактирования ресурса.
Попробуйте использовать переменную экземпляра в родительской форме, например:

<%= form_for @parent_resource do |form| %>
   ... some field ...
<%= form.fields_for :children_resources do |f| %>
...
<% end %>
person bor1s    schedule 25.04.2011