RoR form_for中的多项选择

时间:2012-02-14 16:27:22

标签: ruby-on-rails ruby ruby-on-rails-3 form-for multiple-select

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

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

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

2 个答案:

答案 0 :(得分:0)

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

f.select(:person_id, Person.all.collect {|p| [ p.name, p.id ] }, {}, { :multiple => true })

答案 1 :(得分:0)

当我今天再次开始研究时,它正在发挥作用。我不确定发生了什么变化,但可能是我需要重启服务器。它看起来仍然像

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

所以一定不是这段代码。此外,表单开头看起来像

form_for(@model_name) do |f|

也没有改变。

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

相关问题