Как сделать динамический выпадающий список в Rails?

Я работаю над проектом электронной коммерции, где будут переключатели для выбора размера. У меня есть выпадающее меню для количества. Я хочу сделать этот раскрывающийся список динамическим на основе запаса, доступного для выбранного пользователем размера. Может ли кто-нибудь сказать мне, как это можно сделать на Rails? не загромождая мой файл просмотра большим количеством javascript !?


person hnprashanth    schedule 08.04.2011    source источник


Ответы (1)


Если вы используете Rails 3 с прототипом (по умолчанию), вы можете использовать устаревшие помощники прототипа (Ссылка на Github), чтобы добавить наблюдателя и отобразить частичное представление для раскрывающегося списка. Вы можете добавить наблюдателя, как это

<%= observe_field 'element_var_name',
      :url => { :action => "another_action_here" },
      :update => "div_tag_to_update",
      :with => "'selected='+ escape($('element_var_name').value)" %>

Обязательно настройте element_var_name и действие в соответствии с вашей ситуацией. div_tag_to_update — это div, который будет обновляться с раскрывающимся списком. Действие another_action_here должно отображать вид следующим образом:

def call_ids_by_type
  @element_list = ... # whatever fits for you, like: [[key, value],[key, value]]
  render :layout => false
end

В частичном представлении вы можете использовать список элементов для создания раскрывающегося списка:

<%= f.select :var_name, @element_list %>
person dhoelzgen    schedule 08.04.2011