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 })
4

1 回答 1

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'
于 2010-08-24T19:18:50.680 回答