Как узнать идентификаторы для полей HTML на Rails 3? - PullRequest
0 голосов
/ 10 октября 2011

Stage : Я использую вложенные модели. Предположим, у нас есть две модели: 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-поля?

Большое спасибо за вашу помощь. Пожалуйста, не стесняйтесь спрашивать меня, если вам нужно больше деталей.

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Как насчет присвоения соответствующему полю идентификатора или класса, который вы определили заранее?

new.html.erb * * 1004

<%= 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();
});
1 голос
/ 10 октября 2011

Я бы настоятельно рекомендовал проверить камень nested_form Райана Бейтса. Я думаю, что он позаботится обо всем, что вы хотите сделать.

...