2012-11-19 64 views
2

我試圖將條件參數應用於思維獅身人面像搜索。思維獅身人面像搜索中的條件參數搜索

這就是我試圖實現(psuedo(ISH)代碼)。

我意識到這可能是一個愚蠢的問題,或者我以錯誤的方式去解決它。但任何幫助都會很棒。

DistributerGame.search :conditions => {:game_genre => @genre *** IF PARAMS[GENRE] EXISTS ***}, :with => {:distributer_id => @distributer_id *** if PARAMS[DISTRIBUTER] EXISTS ***, :price_in_gbp => @price *** if PARAMS[PRICE] EXISTS ***} 

謝謝, 馬特

回答

1

你可以做這樣的事情:

conditions = {} 
conditions[:game_genre] = @genre if params[:genre].present? 
withs = {} 
withs[:distibuter_id] = @distributer_id if params[:distibuter].present? 
withs[:price_in_gbp] = @price if params[:price].present? 
# ... 
DistributerGame.search :conditions => conditions, :with => withs 

要堅持你的params不同的網頁:

#in your view: 
filter_params = {} 
filter_params[:game_genre] = params[:genre] if params[:genre].present? 
filter_params[:distibuter] = params[:distibuter] if params[:distibuter].present? 
filter_params[:price_in_gbp] = params[:price] if params[:price].present? 

@distributers.each do |d| 
    filters_params[:distibuter] = d.id 
    link_to d.name, filter_params # you may have to merge this with your resource_path 

@genres.each do |g| 
    filter_params[:genre] = g.id 
    link_to g.name, filter_params 
+0

由於這似乎有工作。我的下一個問題是,這些參數沒有被記住。 Asin只要我發送'流派'參數,'分發者'參數就會丟失。你知道我會如何保持這個? –

+0

這很奇怪......你從哪裏調用這個方法? – MrYoshiji

+0

它在一個控制器中。我想我只需要將自己的參數存儲在一個會話中,以便他們持之以恆? –

相關問題