あなたは、インデックスを持っている必要がありますそれらのそれぞれを表示することができますので、より良い方法はあり
@graphics = Graphic.search params[:search]
@categories = Categories.search params[:search]
@sub_categories = SubCategories.search params[:search]
のように見つける必要があります同様にあなたのカテゴリおよびサブカテゴリモデルで定義され、その後、あなたが一度にすべての3つの間で検索することができます:あなたのビューで
@results = ThinkingSphinx.search params[:search], :page => params[:page]
、あなたは正しいHTMLをレンダリングするために各検索結果の周りにいくつかのロジックをお勧めします - おそらくクラスごとに異なる部分を持つことができますか?それをヘルパーにラッピングすることもお勧めします。ここでスタートだ:
<ul>
<% @results.each do |result| %>
<li><%= render :partial => partial_for_search_result(result),
:locals => {:result => result} %></li>
<% end %>
</ul>
とヘルパー:
def partial_for_search_result(result)
case result
when Graphic
'graphics/search_result'
when Category
'categories/search_result'
when SubCategory
'sub_categories/search_result'
else
raise "Unknown search result/partial mapping for #{result.class}"
end
end
うまくいけば、これはあなたの問題にアプローチする方法についていくつかのアイデアを提供します。
出典
2011-01-22 11:14:57
pat