2016-04-07 4 views
-1

У меня возникли проблемы со следующим кодом:Rails collection_select синтаксиса

= f.collection_select :ch_professional, @ch_professionals 

Я пытаюсь установить ch_professional поля с выбором. @ch_professionals - это массив строк.

Я получаю следующее сообщение об ошибке:

ActionView::Template::Error ({} is not a symbol)

Я искал документацию на collection_select, и я не смог найти правильный синтаксис.

+0

Какие именно вопросы? – Pavan

+0

Я думаю, что мой синтаксис неверен. Я получаю следующую ошибку: ActionView :: Template :: Error ({} не является символом): –

ответ

1

Подпись для collection_select является

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

Он ожидает value_method и text_method быть символы с именами методов, которые будут вызываться, чтобы получить соответствующие значения из каждого элемента массива.

Ошибка в {} связана с тем, что рельсы обрабатывают хэши опций, так как значение хеша по умолчанию {} закончилось в value_method.

Так попробовать что-то вроде:

= f.collection_select :ch_professional, @ch_professionals, :to_s, :to_s 
1

Используйте select формы помощник, если вы просто массив строк и не должны иметь разные значения для значения и текста вариантов, например,

= f.select :ch_professional, @ch_professionals 
Смежные вопросы