2013-07-10 5 views
0

Хорошо, так что я пытаюсь использовать некоторые аякс в рельсах и ударил массивную кирпичную стену: я не могу установить атрибут data-remote в своем поле выбора. Независимо от того, в какой форме я его пытаюсь, он всегда действует так, как будто части, рассказывающие об этом атрибуте, даже не существуют. Пример:Как добавить атрибут в раскрывающийся список рельсов?

<%= f.select(:image, options_from_collection_for_select(@images, 'id', 'name'), data: {remote: true}) %> 
<%= f.select([...] , :'data-remote' => 'true') %> 
<%= f.select([...] , :data => {remote: true}) %> 
<%= f.select([...] , data: {remote: true}) %> 
<%= f.select([...] , remote: true) %> 

У меня даже есть рабочий код, который реализует первые три на другие вещи, но только не то, что f.select

Так ли кто-нибудь знает, как я могу правильно применить атрибут к f.select?

+0

Вы просмотрели документацию для 'select' в [http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select](http://api.rubyonrails. org/classes/ActionView/Helpers/FormOptionsHelper.html # method-i-select)? –

ответ

2

В data ключ должен быть в опции HTML хэш, который является третьим аргументом select. Из документации:

select(method, choices, options = {}, html_options = {}) 

этого вам необходимо:

f.select(:image, options_from_collection_for_select(@images, 'id', 'name'), {}, { data: {remote: true} }) 

Обратите внимание на пустые параметры хэш.

+0

Ах, я не знал, что параметры html были в другой области. Благодаря! –

0

Попробуйте это:

<%= f.select :image, options_for_select(@images.map{ |i| [i.name, i.id, {'data-remote'=>true}] }) %> 
Смежные вопросы