0

我正在使用.select将“line_id”分配给“实例”。类“实例” belongs_to“线”。

<%= line_builder.select('instance', 'line.line_id', Line.all.collect {|p| [p.title, p.id ]}, { :include_blank => 'select line' }) %>

此行返回此错误:

undefined method `merge' for #<Array:0x007fc3c389e868>

不太确定这里出了什么问题,但我假设这是该.select方法的语法,因为我以前从未使用过它。

我还能告诉你什么来帮助我解决这个问题?

4

1 回答 1

1

尝试使用options_for_select

<%= line_builder.select(:line_id, Line.all.collect {|p| [p.title, p.id ]}, { :include_blank => 'select line' }) %>

它不起作用的原因:

您的选择中有一个额外的参数:表单构建器中的选择将调用更新的方法作为参数(在这里line_id,Rails 将调用line_id该对象并将其分配给选择框的值),第二个参数是选项对于选择,第三个选项是html_optionsas a Hash。由于您有一个额外的参数,Rails 期望您的选项是html_options哈希,这是您的选择选项。

于 2013-02-13T16:56:38.810 回答