Rails form_for collection_select игнорирует удаленный вызов ajax, который принимает select_tag - PullRequest
5 голосов
/ 13 марта 2012

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

<%= select_tag :city_id, 
        options_for_select( City.all.collect{|c| [c.name,c.id]} ),
        :data => {  :remote => true,
                    :url => url_for(:controller => "locations", 
                                    :action => "filter_by_city")
                }
%>

, и это отлично работало, чтобы вызвать мой filter_by_city.js.erb и обновить некоторые другие значения.Проверка с помощью firebug показывает, что у него есть свойства data-remote и т. Д.

При переходе к помощнику form_for ниже, однако, я не получаю data-remote и, следовательно, не вызываю AJAX.

<%= f.collection_select(:city_id, 
        City.all, :id, :name,
        :data => {  :remote => true,
                    :url => url_for(:controller => "locations", 
                                    :action => "filter_by_city")
                }
    )
%>

Раскрывающийся список выглядит точно так же, как и раньше (и потребовалось некоторое путаница с параметрами, чтобы получить его), но он не имеет никакой функциональности, кроме установки значения параметров.

Я пробовал перенос: данные в {} (как на французском форуме здесь но это не было лекарством.

Я предполагаю, что это ошибка новичка, но любая помощь в ее обнаружении будет наиболее цениться.

Спасибо

1 Ответ

8 голосов
/ 14 марта 2012

:: le sigh ::

При использовании collection_select, в отличие от некоторых частей RoR, кажется немного придирчивым включать все аргументы по порядку.Несмотря на то, что я могу (и продолжаю) опускать: post, решение оказалось включающим пустой набор опций и упаковку: данные в {} для html_options.

И вот, это работает:

<%= f.collection_select(:city_id, 
        City.all, :id, :name, {},
        {:data => {  :remote => true,
                    :url => url_for(:controller => "locations", 
                                    :action => "filter_by_city")
                }
        }
    )
%>

Обратите внимание на {} after: name и {начало следующей строки.

Выводное сообщение - ОПЦИИ НЕ ДОПОЛНИТЕЛЬНЫ, если включают html_options.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...