2013-03-31 1 views
2

Я понял, что на протяжении всего поколения вложенных форм divs я не знаю, как получить значение по умолчанию там.select2 на вложенных формах с рельсами

В нормальной форме, он выглядит следующим образом

<%= f.hidden_field :toolkeeper, :id => "toolkeeper_value" %> 
<%= f.select :toolkeeper, options_from_collection_for_select(@people, :id, :name), :include_blank => true, :selected => '25' %> 

и corresponing JS:

$ -> 
    $("#practice_toolkeeper") 
    .select2({ 
     allowClear: true, 
     placeholder: 'Select an item' 
    }) 
    .select2('val',$("#toolkeeper_value").val()) 

, но в пределах поколения вложенных форм, то hidden_field #ID, которые я использую, чтобы получить существующее значение для селектора изменяется следующим образом:

select#practice_uebung_maps_attributes_1_role_id 
select#practice_uebung_maps_attributes_2_role_id 
... 

что такое коррекция ct способ написать JS-Script, который инициализирует .select2(), а также принимает значение hidden_field?

ответ

1

Хорошо я наконец понял это с некоторой помощью моих друзей:

я добавил функцию, чтобы создать ВЫБ.2 формы:

function build_select2_role(counter){ 
    $("#practice_uebung_maps_attributes_"+counter+"_role_id").select2({ 
     allowClear: true, 
     placeholder: 'Rolle' 
    }).select2('val',$("#role_id_"+counter).val()) 
    }; 

и в fields_for разделе, только я назовите эту функцию (заполненную локальной переменной):

<% @runs = 0 %> 
<td> 
    <%= map.hidden_field :role_id, :id => "role_id_#{@runs}" %> 
    <%= map.select :role_id, options_from_collection_for_select(@roles, :id, :name), :include_blank => true %></td> 
    <script type='text/javascript'> 
     build_select2_role(<%= @runs %>); 
    </script> 
</td> 
<% @runs += 1 %> 
+0

Вы можете разместить свой контроллер/код на бэкэнд только для хихиканья и благотворительных организаций? – ahnbizcad

Смежные вопросы