2010-08-24 2 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' 
Смежные вопросы