用铁轨和太阳黑子改变搜索的参数

时间:2010-08-24 19:01:47

标签: ruby-on-rails ruby solr sunspot

这似乎是一项常见的任务,我相信其他人已经遇到过它。

如果我的控制人员这样说:

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 个答案:

答案 0 :(得分: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'