2011-12-30 56 views
3

我在頁面中有兩個列表,一個是model_1,另一個是model_2。當我點擊一列meta_search的sort_link時,發送參數「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領域,當我在任何列中單擊名稱鏈接,我在控制器中得到的參數是params [: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 

使用meta_search提供輔助方法sort_link我找不到改變帕拉姆名稱的方式。還是有不同的方式來做到這一點?

+0

什麼視圖中的sort_link是什麼樣子? – Ramy 2011-12-30 06:29:23

+0

你可以發佈sort_link輔助方法的代碼嗎?另外,你在'index'方法中顯示的控制器代碼還是不同的? – Ramy 2012-01-04 14:23:07

回答

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在視圖中 – 2012-01-04 08:05:00

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) 
相關問題