3

我有一个我想要作为变量选项的项目列表。它们将作为数组保存在模型中,并在 form_for 中显示为列表。我正在使用

f.select(:var_name, [["option1"],["option2"],["option3"]], {}, {multiple: "multiple"})

这非常适合保存到模型中。但是当返回表单时,没有选择任何内容(即使变量已将它们全部保存)。然后,如果我再次提交表单,它会传递一个空数组。正确保存的唯一方法是每次查看表单时重新选择我想要的。我怎样才能让它们进入多选框?

4

2 回答 2

0

我相信你的问题源于你的choices参数。您可能需要一组 [option,id] 映射:

f.select(:person_id, Person.all.collect {|p| [ p.name, p.id ] }, {}, { :multiple => true })
于 2012-02-14T20:15:16.933 回答
0

当我今天再次开始工作时,它正在工作。我不确定做了什么更改,但可能是我需要重新启动服务器。它看起来仍然像

f.select(:name, [[" "],["option"],["option2"],["option3"]], {}, {:multiple => true})

所以它一定不是这个代码。此外,表格开始看起来像

form_for(@model_name) do |f|

这也没有改变。

无论如何,它现在有效。谢谢!

于 2012-02-15T13:52:24.543 回答