2

我有一個我想要作爲變量選項的項目列表。它們將作爲數組保存在模型中,並將在form_for中顯示爲列表。我正在使用RoR中的多重選擇form_for

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

這很適合保存到模型中。 但是當回到表格時,沒有選擇任何東西(即使變量已經保存了它們)。然後,如果我再次提交表單,它會傳遞一個空數組。正確保存的唯一方法是每次查看錶單時重新選擇我想要的。 如何讓他們進入多選框?

+0

在做了一些更多的尋找,我認爲它需要:選擇=>'東西' 但我不知道該放什麼? – 2012-02-14 17:48:03

+0

你能爲你的表單提供整個代碼嗎? – 2012-02-14 19:37:46

回答

0

我相信你的問題源於你的choices參數。你可能需要[選項,ID]映射數組:

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

我不知道爲什麼,但它現在正在工作,並且不需要選項,id arry。 – 2012-02-15 13:48:17

0

當我開始今天再次做這個工作,這是工作。我不確定做了哪些更改,但可能需要重新啓動服務器。它仍然看起來像

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

所以它一定不是這個代碼。此外,開始的形式看起來像

form_for(@model_name) do |f| 

哪些也沒有改變。

無論如何,它現在的作品。謝謝!