現在、繭の宝石を使用して、ネストされたフォームをbootstrap/simple_formとともに処理しています。私のモデルは次のようにレイアウトされています。
- A コンタクトの
has_many
目標 - A 目標
has_many
タスク - タスクの
has_one
リマインダー (まだ実装されていません。この問題が解決したら、次の予定です)
私のフォームは、目標フィールドが正しく作成された状態でレイアウトされており、問題なく最初の目標にタスクを追加/削除できます。ただし、別の目標を動的に追加すると (新規または編集アクションに関係なく)、それにタスクを追加/削除できません ([タスクを追加] をクリックすると、最初の目標にのみ追加されます)。以下は私のフォームです:
_form.html.erb
<%= simple_form_for(@contact) do |f| %>
<% if @contact.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>
<ul>
<% @contact.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.input :name %>
<%= f.input :title %>
<%= f.input :company %>
<%= f.input :email %>
<%= f.input :notes %>
<h3>Goals:</h3>
<div id="goals">
<%= f.simple_fields_for(:goals) do |goal| %>
<%= render 'goal_fields', :f => goal %>
<div class="links">
<%= link_to_add_association 'add goal', f, :goals, :render_options => {:wrapper => 'bootstrap' } %>
</div>
<% end %>
</div>
<%= f.submit :submit %>
<% end %>
_goal_fields.html.erb
<div class="nested-fields">
<%= f.input :title %>
<%= f.input :due_date %>
<%= f.input :notes %>
<%= link_to_remove_association "remove goal", f %>
<h4>Tasks:</h4>
<div id="tasks">
<%= f.simple_fields_for(:tasks) do |task| %>
<%= render 'task_fields', :f => task %>
<div class="links">
<%= link_to_add_association 'add task', f, :tasks, :render_options => {:wrapper => 'bootstrap' } %>
</div>
<% end %>
</div>
</div>
task_fields.html.erb
<div class="nested-fields">
<%= f.input :task_type %>
<%= f.input :date_of_task %>
<%= f.input :complete, as: :boolean, checked_value: true, unchecked_value: false %>
<%= link_to_remove_association "remove task", f %>
</div>
コードを調べて、適切な div クラスと ID を使用していることを確認しましたが、フォームのどこかに問題があると確信しています。また、simple_form/bootstrap に必要なラッパー オプションも追加しました。私を助けてくれてありがとう。