Вспомогательный метод Rails 3 collection_select для отношения HABTM - PullRequest
2 голосов
/ 01 декабря 2010

У меня есть 2 модели, сессии и докладчики с отношениями HABTM между ними.На странице создания сеанса я хотел бы предоставить раскрывающийся список, из которого пользователь может выбрать несколько докладчиков для сеанса.Мой код в _form.html.erb (для сессий):

<% = f.label: Presenters%><% = collection_select (: session,: Presenters, Presenter.all,: id,: name, {: include_blank => ''}, {: множественный => true})%>

Однако при нажатии createВ браузере появляется следующее сообщение об ошибке: Ожидается докладчик (# 2176431740), получена строка (# 2151988680)

В журнале запросов отображаются "Presenters" => ["1", "2"]

Я предполагаю, что вместо объектов презентатора возвращается массив строк, содержащий идентификаторы выбранных докладчиков.Я не могу понять, как заставить это работать.

(PS- Я создал таблицу Presenters_sessions и указал has_and_belongs_to_many в обеих моделях)

Заранее спасибо.

1 Ответ

3 голосов
/ 27 марта 2011

Если вы еще не поняли, это сработает, если вы передадите: Presenter_ids в качестве второго параметра, а не: Presenters. В конце концов, вы просто отображаете выбранные идентификаторы в коллекцию идентификаторов модели. Ошибка говорит: «Вы пытались назначить строку для коллекции докладчиков».

...