2011-12-30 3 views
3

У меня есть два списка на странице, один для model_1 и еще один для model_2. Когда я нажимаю sort_link столбца meta_search, отправьте параметр «search [meta_sort] = column_name.asc». Проблема в контроллере, так как эти две модели фильтруются с теми же параметрами поиска:Как сделать два поиска на одной странице с meta_search?

#in the controller 
@search_for_model_1 = Model1.search(params[:search]) 
@model_1s = @search_for_model_1.all 

@search_for_model_2 = Model2.search(params[:search]) 
@model_2s = @search_for_model_2.all 

#in the view 
<%= sort_link @search_for_model_1, :name %> 
<%= sort_link @search_for_model_2, :name %> 

в sort_links находятся в разных таблицах HTML, один показ model_1 полей и другой показ model_2 поля, когда я нажимаю в любом столбце имя, параметр, который я получаю в контроллере, является параметром [: search], у меня нет способа узнать, была ли нажата ссылка на столбец из таблицы model_1 или model_2 html.

Я хочу изменить имя пар «искать» что-то вроде «search_for_model_name», то в контроллере:

#in the controller 
@search_for_model_1 = Model1.search(params[:search_for_model_1]) 
@model_1s = @search_for_model_1.all 

@search_for_model_2 = Model2.search(params[:search_for_model_2]) 
@model_2s = @search_for_model_2.all 

Я не мог найти способ изменить имя пар с помощью метода помощника sort_link что meta_search обеспечивает , Или есть другой способ сделать это?

+0

, что делает sort_link на ваш взгляд выглядит? – Ramy

+0

Можете ли вы опубликовать код для метода sort_link helper? Кроме того, есть ли код контроллера, который вы показываете в методе 'index' или другом? – Ramy

ответ

1

sort_link использует опцию :as так же, как form_for

<%= form_for @search, :as => :q do |f| %> 

<%= sort_link @search, :field, :as => :q 

@search = Model.metasearch(params[:q]) 

Так делать с разными именами для каждой модели. Ответ

0

, скорее всего, вы просто сделать что-то вроде этого

:search_for_model_2 => :search_field 

, но я не могу сказать наверняка, не видя ваш взгляд.

+0

Я изменил исходное сообщение, потому что у него была ошибка с копией папок, и я положил, как sort_links находятся в представлении –

0

graywh является не работает sort_link, это правильное решение:

#in the controller 
@search_for_model_1 = Model1.search(params[:model_1], :search_key => :model_1) 

@search_for_model_2 = Model2.search(params[:model_2], :search_key => :model_2)