2014-03-29 27 views
3

在我的表單中我有很多字段,當我提交我的表單時,我的url我看到很多空的參數,像url?a = & b = & c =和我的has_scope模型認爲我想使用這個參數,但是有空值,但這是錯誤的。Rails has_scope如果條件

我的模型和控制器的部分:

我怎麼能寫這樣的:

if vehicle_manufacturer_id.present? 
has_scope :by_manufacturer 
end 

如何正確檢查現場presense?並在哪裏寫入和如何?

回答

2

Has_scope有一個if條件,您可以使用它來確定何時應該使用該作用域。例如:

has_scope :by_manufacturer, if: vehicle_manufacturer_id.present? 

或添加的範圍本身條件:

scope :by_manufacturer, -> vehicle_manufacturer_id { where(:vehicle_manufacturer_id => vehicle_manufacturer_id) if vehicle_manufacturer_id.present? } 

我現在不能測試,但這應該工作。但是,我認爲你的問題不是你想要的,或者你沒有打電話給示波器。 URL參數從您的視圖傳遞到您的控制器。範圍只決定在給定條件下返回哪些記錄,他們沒有說明應該顯示哪些URL參數。

+0

請給例如在.compact()謝謝 – brabertaser19

+0

我明白了......只是不工作) – brabertaser19

+0

如何使用緊湊has_scope: – brabertaser19