我終於想出瞭如何實現pg_search的multisearch功能。但是我無法制作可用的搜索結果頁面,該頁面會顯示鏈接回到包含搜索條件的各種文章和常見問題解答。這是使用Rails 3.2.3一個非常基本的設置:如何使用包含指向結果的鏈接的pg_search multisearch創建搜索結果頁面?
型號:
我有一個文章和常見問題解答模式,既與「標題」和「內容」屬性,該代碼在這兩種模式:
include PgSearch
multisearchable :against => [:title, :content]
搜索表單查看代碼:
搜索表單傳遞的一切到一個名爲控制器 「的結果。」
<%= form_tag result_index_path, method: :get do %>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "GO", name: nil %>
<% end %>
結果控制器:
class ResultController < ApplicationController
def index
@pg_search_documents = PgSearch.multisearch(params[:query])
end
end
我想提出一個顯示每個結果發現標題,一個鏈接返回到該項目的搜索結果頁面。我想出瞭如何將'class'屬性拉出@pg_search_documents。我的想法是這樣做的結果頁面上:
<ul>
<% @pg_search_documents.each do |pg_search_document| %>
<li><%= link_to pg_search_document.searchable.title, "../#{pg_search_document.searchable.class}/#{pg_search_document.searchable.id}" %></li>
<% end %>
</ul>
一個例子鏈接,該代碼產量是:http://localhost/Article/3
。如果我能弄清楚如何聲明和複數化「pg_search_document.searchable.class」,我就可以免費回家了。我已經嘗試在模型和控制器中編寫各種方法,並嘗試編寫一個幫助程序。但這是我的Rails技能讓我失望的地方。
有什麼建議嗎?任何人都知道完成這個更優雅的方式?任何想法/建議都非常感謝。