Я наконец понял, как реализовать многопользовательскую функцию pg_search. Но у меня возникли проблемы с созданием полезной страницы результатов поиска, которая отображает ссылки на различные статьи и вопросы, содержащие условия поиска. Это довольно простая установка с помощью Rails 3.2.3:Как сделать страницу результатов поиска с помощью ps_search multisearch, которая имеет ссылки на результаты?
Модель:
У меня есть статьи и модель FAQs, как с «Title» и «Материалами» атрибутами, и этим кодом в обеих моделях:
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
Я хотел бы сделать страницу результатов поиска, которая отображает заголовок каждого результата найденного с обратной ссылкой на этот элемент. Я понял, как вытащить атрибут класса из @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 не позволяют мне.
Любые предложения? Кто-нибудь знает более элегантный способ сделать это? Любые идеи/предложения очень ценятся.