2013-01-11 109 views
0

刪除空值,這是我的一種形式選擇標籤:的Rails:在選擇標籤

<%= f.select(:example_name, ModelName.all.collect {|p| [ p.example_name, p.example_name ] }, {:include_blank => 'Select Example'}) %> 

這將返回所有模型MODELNAME的example_name。但該模型存儲在數據庫中的空值。

因此,我希望選擇標籤只檢索有效的條目,留下空或零值。

我們該怎麼做。

在此先感謝

回答

1

您可以從

ModelName.all 

查詢更改爲

ModelName.where("example_name <> ''") 

這將省去NULL""值。

注意將查詢直接放入視圖是不好的做法;通常不需要它。該查詢應該用於控制器操作中的分配。

@select_options = ModelName.where(... 

,然後在您的視圖

<%= f.select(:example_name, @select_options.collect { [... 

您按理說應該連招collect進入行動了。

+0

條件工作完美。感謝您詳細解釋一切。 – Supersonic

+0

你打賭;樂意效勞。 – deefour

1

嘗試

<%= f.select(:example_name, ModelName.where("example_name IS NOT NULL && example_name != ''").collect {|p| [ p.example_name, p.example_name ] }, {:include_blank => 'Select Example'}) %> 
+0

這一個似乎也按預期工作。謝謝 – Supersonic