f.select中Rails中的参数数量错误(3个为2)

我有这个多选列表给出了一个错误错误的参数数量(3个为2)在一个form_form一个“主题”模型has_many:课程,:through => another_model

"Select Curriculum", :multiple=>true , :class=>"chzn-select"} %> 

但是,此代码在另一个控制器的视图中工作得很好:

这里我们有一个带有has_and_belongs_to_many:技能的问题模型

 "Select Other Skills",:multiple=>true,:class=>"chzn-select"}%> 

这是完整的_form.html.erb:

 
Error!
Topics
{:class=>"form-horizontal"}) do |f| %>
<textarea name="topic[description]" value="">
'Please Select Subject'}) %>
"Select Curriculum", :multiple=>true , :class=>"chzn-select"} %>
'Please Select'},{:name=>"topic[concept][][concept_id]"}) %>
"margin-left:25px;", :class=>'text_field', :name=>'topic[concept][][concept_sequence]', :placeholder=>'concept_sequence', :size=>'30'%>
'Please Select'},{:name=>"topic[concept][][concept_id]",:class=>"chzn-select"}) %>
"margin-left:25px;", :class=>'text_field', :name=>'topic[concept][][concept_sequence]', :placeholder=>'concept_sequence', :size=>'30'%>

代码固定:

显然,连接模型有代码:

 belongs_to :curriculum , :grade, :topic 

更改为代码修复了一切。

  belongs_to :curriculum belongs_to :grade belongs_to :topic 

为什么不使用collection_select?

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

在form_for参数中使用时如下

第一个参数是您希望记录值的字段的名称(例如:curriculum_id)第二个参数是您希望从中收集项目的模型(例如Curriculum.all)第三个参数是您要记录值的字段(例如:id)第四个参数是您希望显示为值的字段(例如:name)

所以你的例子

 <%= f.collection_select :curriculum_id, Curriculum.all, :id, :name, { "data-placeholder"=>"Select Curriculum", :multiple=>true , :class=>"chzn-select"} %> 

应该近似你想要的,虽然你可能需要调整它。