0

ステージ: ネストされたモデルを使用しています。 と の 2 つのモデルがあるpersonとしcarます。そして、ここにnew.html.erbページがあります:

<%= form_for(@person do |f| %>
  ...
  <%= f.fields_for :cars do |car| %>
    <div class="field">
      <%= car.label :color %><br />
      <%= car.text_field :color, :maxlength => 7 %>
    </div>
  <% end %>
  ...
<% end %>

このコードは、車ごとに生成されます。

<form ...>
  ...
  <div class="field">
    <label for="person_cars_attributes_0_color">Car color</label><br />
    <input id="person_cars_attributes_0_color" 
           name="person[cars_attributes][0][color]" 
           size="7" type="text" />
  </div>
  ...
</form>

ここで、次のようなものを生成するために、各入力フィールドにいくつかの JavaScript コードを配置する必要があるとします。

    <script type="text/javascript">
      $(document).ready( function() { $('#person_cars_attributes_0_color').mycolorpicker(); });
    </script>
    <input id="person_cars_attributes_0_color" 
           name="person[cars_attributes][0][color]" 
           size="7" type="text" />

注意してください、javascript コード入力フィールドが必要ですid(この例ではperson_cars_attributes_0_color)。

問題: 生成された各 html フィールドのこの id 値を取得するにはどうすればよいですか?

ご助力ありがとうございます。詳細が必要な場合は、お気軽にお問い合わせください。

4

2 に答える 2

1

Ryan Batesによる nested_form gemをチェックすることを強くお勧めします。あなたがやりたいことすべてに対応してくれると思います。

于 2011-10-10T17:52:03.013 に答える
1

問題のフィールドに、事前に決定した ID またはクラスを割り当てるのはどうですか?

new.html.erb:

<%= form_for(@person do |f| %>
  ...
  <%= f.fields_for :cars do |car| %>
    <div class="field">
      <%= car.label :color %><br />
      <%= car.text_field :color, :maxlength => 7, :class => 'colorpicker' %>
    </div>
  <% end %>
  ...
<% end %>

JavaScript:

$(document).ready(function() {
  $('.colorpicker').mycolorpicker();
});
于 2011-10-11T01:58:06.527 に答える