这似乎是一项常见的任务,我敢肯定其他人已经遇到过。

如果我的控制器这样说:

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 })
有帮助吗?

解决方案

只需将这个小宝宝加入您的控制器

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'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top