Изменение параметров для поиска с помощью рельсов и солнечных пятен - PullRequest
2 голосов
/ 24 августа 2010

Это похоже на обычную задачу, я уверен, что другие сталкивались с этим.

Если мой контроллер говорит это:

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 Ответ

1 голос
/ 24 августа 2010

Просто добавьте этого маленького ребенка в свой контроллер

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'
...