1

多くのスロットを持つカバー モデルがあります。#196 Railcast#197 Railcastに続いてフォームを作成しました。フォームは作成には問題なく機能しますが、カバー (特に子スロット) を更新したい場合、更新されません。問題は、スロットのフィールドの html name 属性に適切な ID が含まれていないことです。代わりに、スロットのフィールドは常に 0 から始まり、増加しているようです。関連するコードは次のとおりです。

_form.html.erb:

<%= form_for(@cover) do |f| %>
    ...
    <%= f.fields_for :slots do |builder| %>
        <%= render "slot_fields", :f => builder %>
    <% end %>
    ...
<% end %>

_slot_fields.html.erb:

<div class="fields">
<p>
  <div class="field">
    <%= f.label :width %>
    <%= f.number_field :width %>
  </div>
...

出力html:

<p>
  <div class="field">
    <label for="cover_slots_attributes_0_width">Width</label>
    <input id="cover_slots_attributes_0_width" name="cover[slots_attributes][0][width]" type="number" value="50" />
  </div>

ただし、スロット ID は 3 です

前もって感謝します

4

0 に答える 0