2015-06-23 2 views
-1

У меня есть это:Rails автозавершения (в зависимости от выбора)

# _form.html.erb 
f.text_field :c, data: {autocomplete_source: @correlations.all.map { |x| x.name }}<br> 
f.text_field :n, data: {autocomplete_source: @customers.all.map { |x| x.note}} 

// Coffee script 
$('#launch_c').autocomplete source: $('#launch_c').data('autocomplete-source') 
$('#launch_n').autocomplete source: $('#launch_n').data('autocomplete-source') 

Мне нужно, что переменная @customers в зависимости от выбора корреляции ... Может кто-нибудь мне помочь?

+1

Приветствую вас, чтобы переполнение стека! Ваш вопрос довольно расплывчатый относительно того, что вы пытаетесь сделать или в чем проблема. Я настоятельно рекомендую прочитать их через страницы: http://stackoverflow.com/help/how-to-ask и http://stackoverflow.com/help/how-to-answer, они оба являются фантастическими ресурсами для использования при запросе или отвечая на вопросы и поможет быстро получить наилучшие ответы. – Newd

ответ

1

Если я правильно вас понимаю, это не так уж и сложно. В основном вам понадобится что-то вроде этого:

  • Хранить всех клиентов в вложенном JSON на странице, чтобы Jquery мог легко найти всех клиентов для данной корреляции. (Если у вас более сотни клиентов или корреляций, вы можете использовать вызов AJAX вместо предварительной загрузки всех возможных записей на страницу.)
  • Код JQuery, который определяет, когда выбрана корреляция, выбирает массив Customers для что корреляция и повторная инициализация виджета автозаполнения клиента соответствующими данными. Смотрите Jquery Autocomplete API documentation более подробно о том, как обнаружить изменения событий и т.д.

Результат может выглядеть как этот Jquery код:

$('#launch_c').autocomplete({ 
    source: $('#launch_c').data('autocomplete-source'), 
    change: function(event, ui){ 
    var correlation_name = ui.item.value; 
    var data = $('#launch_n').data('autocomplete-source')[correlation_name]; 
    $('#launch_n').autocomplete({ source: data }); 
    } 
}); 

И это потребовало бы #launch_n иметь data-autocomplete-source вложенную JSON-то например:

{ 
    "correlation1_name": ["customer1_name", "customer2_name", "customer3_name"], 
    "correlation2_name": ["customer4_name", "customer5_name", "customer6_name"], 
    "correlation3_name": ["customer7_name", "customer8_name", "customer9_name"], 
    // etc. 
} 
Смежные вопросы