Rails 3 collection_select用于HABTM关系的帮助方法

时间:2010-12-01 09:45:24

标签: ruby-on-rails-3 has-and-belongs-to-many

我有两个模型,会话和演示者,他们之间有HABTM关系。 在创建会话页面上,我想提供一个下拉框,用户可以从中选择多个演示者进行会话。 我在_form.html.erb(对于会话)中的代码是

    <%= f.label:演示者%>
         <%= collection_select(:session,:presenters,Presenter.all,:id,:name,{:include_blank =>''},{:multiple => true})%>      

然而,在点击创建时,我在浏览器上收到以下错误消息: 主持人(#2176431740)期待,得到字符串(#2151988680)

请求日志显示“演示者”=> [“1”,“2”]

我猜测正在返回包含所选演示者的ID的字符串数组而不是presenter对象。我无法理解如何让这个工作。

(PS-我创建了presenters_sessions表并在两个模型中指定了has_and_belongs_to_many)

提前致谢。

1 个答案:

答案 0 :(得分:3)

我没有想到这一点,如果你传入:presenter_ids作为第二个参数而不是:演示者,它将会起作用。最后,您只是将选定的id映射到模型的id集合。错误是说“您试图将字符串分配给演示者集合”。