2010-08-24 32 views
2

這似乎是一個常見任務,我確信其他人已經遇到它。用軌道和太陽黑子搜索的變化參數

如果我的控制器這樣說:

def index 
    s = Sunspot.search Organization do |query| 
    query.keywords params[:q] unless params[:q].blank? 
    query.with(:searchable).equal_to(params[:filter_by] == 'published' ? 'true' : false) if params[:filter_by] 
    .. 

如何:

..通過鏈接,使其改變其query.with(:searchable)聲明query.with(:has_no_deals)

這裏是我的入門鏈接不起作用,因爲老query.with(:searchable)不會被覆蓋:

= link_to 'Has No Deals', url_for(:overwrite_params => { :filter_by => 'dfgsdgsdf', :page => nil }) 

回答

1

只是在你的控制器中添加這個小寶寶

query.with(:searchable).equal_to(params[:filter_by] == 'published' ? 'true' : false) if params[:filter_by] == ('published' || 'unpublished') 

query.with(:has_no_deals).equal_to(params[:filter_by] == 'has_no_deals' ? 'true' : false) if params[:filter_by] == 'has_no_deals'