2015-09-16 50 views
1

我已經定義了膳食和食譜之間的has_and_belongs_to_many關聯。在Meals創建表單中,我使用select來填充食譜。導軌形式選擇多個給出空的第一個值

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {}, :multiple => true %> 

但結果集的第一個值爲零。

"recipes"=>["", "2", "7"] 

如何消除空/無值?

+1

'PARAMS [ :食譜] .reject(&:空白?)' –

+0

這是否在控制器?如果是這樣,哪一種,餐食或食譜? – mjenkins

+0

無論你在哪裏獲得該陣列。只需調用'.reject(&:blank?)'就可以了。 –

回答

1

你可以通過:include_blank => false

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_blank => false}, :multiple => true %> 

拒絕空白選項,你可以設置一個提示如下

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_blank => "Please Select"}, :multiple => true %> 
+0

問題不在於選擇框中有空白。點擊提交按鈕後,結果爲空/空/零。我想刪除或防止結果中的空白「recipes」=> [「」,「2」,「7」] – mjenkins

+0

我已經添加了include_hidden,但它仍然無效:<%= f.select:recipes ,Recipe.all.collect {| x | [x.name,x.id]},{},:multiple => true,:include_hidden => false%> – mjenkins

+0

它不應該導致保存或更新數據的問題,我有時會在參數中找到這種類型的空元素,但沒有問題發生。你有沒有得到任何錯誤?如果發現任何錯誤,請發佈,然後我會盡力幫助你解決錯誤。 –

3

對我設置:include_hidden => false是什麼工作

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_hidden => false}, :multiple => true %> 
+0

謝謝!這對我來說很有用 – GuilPejon

相關問題