私は5つのモデルを持っています、
- 人
- person_car
- 車(タイヤが多い)
- person_car_tire
- タイヤ(車のもの)
だから私はこのビュー _form.html.erb を持っています
<%= form_for(@person) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div>
<% Car.all.each do |c|%>
<div class="field">
<%= f.fields_for(:person_cars) do |ff|%>
Car Name: <%= ff.check_box :car_id %>|<%= c.car_name%>
<% c.tires.each do |b|%>
<div class="field">
<%= ff.fields_for(:person_car_tires) do |fff|%>
Tire: <%#= fff.check_box :tire_id%>|<%= b.tire_name%>
<%end%>
</div>
<%end%>
<%end%>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
そして、保存すると完全に機能しますが、このフォームを使用して編集したいときに問題が発生します。これは、ビューで各車のデータが 4 回複製されるためです。私は探していて、追加のオプションを許可するフィールドを探していたので、次のように作成しました。
<%= form_for(@person) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div>
<% @person.cars.each do |c|%>
<div class="field">
<%= f.fields_for(:person_cars, c) do |ff|%>
Actividad: <%= ff.check_box :car_id %> | <%= c.car.name%>
<% c.person_car_tires.each do |t|%>
<div class="field">
<%= ff.fields_for(:person_car_tires, t) do |fff|%>
Tarea: <%#= fff.check_box :tire_id%>|<%#= t.tire.name%>
<%end%>
</div>
<%end%>
<%end%>
</div>
<%end%>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
動作するようになりましたが、新しいアクションで選択した車とタイヤのみが表示されます。私が望んでいたわけではありません(最初のフォームを使用すると、ビューのチェックボックスが複製されるため)。
両方のアクションに同じフォームを使用するにはどうすればよいですか?
誰かが私を助けてくれることを願っています。