Я использую this cool gem ryanb nested_forms, но я не могу заставить его работать правильно ...Rails глубоко вложенной формы с nested_form жемчужину
У меня есть два уровня вложенных форм.
class Etude
has_many :phases
class Phase
has_many :affectations
class Affectation
В основном, чтобы сделать вещи просто, у меня есть таблица фаз, и для каждой фазы у меня есть ячейка таблицы, где я положил свою вложенную таблицу жеманничанья. Я использую <%= f.object.id %>
для создания уникального идентификатора для каждой вложенной таблицы, поэтому я могу использовать целевую информацию.
Он отлично работает для первого гнездования (много фаз в этюда), однако я не могу поместить Аффекты на фазах в теле. He're моя ода
_phases.html.erb
<%= nested_form_for @etude, :method => :post, :remote => true do |f| %>
<table class="table table-striped table-bordered table-hover" id="tableau_phases">
<thead>
blablabla
</thead>
<tbody>
<%= f.fields_for :phases, :wrapper => false %>
</tbody>
</table>
<!-- I use an other table tag otherwise new entries would appear after the "add_phase" link -->
<table class="table table-striped table-bordered table-hover">
<tr><td>
<%= f.link_to_add t("add_phase"), :phases, :data => { :target => "#tableau_phases" } %>
</tr></td>
</table>
<% end %>
_phase_fields.html.erb
<tr>
My fields
</tr>
<tr>
<td colspan="5">
<table id="<%= f.object.id %>" class="table table-striped table-bordered table-hover liste-intervenants">
<thead>
stuff
</thead>
<tbody><% f.fields_for :affectations %></tbody>
</table>
</td>
</tr>
<tr>
<td colspan="5">
<%= f.link_to_add "Ajouter un intervenant", :affectations, :data => { :target => "##{f.object.id}"} %>
</td>
</tr>
_affectation_fields.html.erb
Просто некоторые довольно простые <tr><td></td></tr>
материала
Проблема:
После нажатия на ссылку, чтобы добавить новую аффектацию, он не ставит вещи в оном столе, но и создает дополнительный DIV. He're, что это выглядит как в DOM
<table id="8354u3r1jh534g2fh">
<thead>headers</thead>
<tbody>EMPTY !!!</tbody>
<div class="fields"> Stuff is added there and not in the tbody !</div>
</table>
Это странно, потому что я действительно есть :data => { :target => "##{f.object.id}"}
, который должен обрабатывать вставки даты в TBODY (я проверил, и этот код на самом деле выдает хорошую вещь)
Примечание: Это работает отлично для первого уровня вложенности форм (: фазы в @etude)