4

Я наконец понял, как реализовать многопользовательскую функцию 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 не позволяют мне.

Любые предложения? Кто-нибудь знает более элегантный способ сделать это? Любые идеи/предложения очень ценятся.

ответ

9

я сделал что-то подобное и просто использовал

<%= link_to pg_search_document.searchable.title, pg_search_document.searchable %> 

позволить Rails динамически создавать путь к соответствующей записи.

0

Ну, это удивительно, что отходит от проблемы на некоторое время. Это и еще более упорный Googling на базовом Ruby. Вот решение, которое я придумал:

<ul> 
    <% @pg_search_documents.each do |pg_search_document| %> 
    <li><%= link_to pg_search_document.searchable.title, "../#{(pg_search_document.searchable.class).to_s.downcase!.pluralize}/#{pg_search_document.searchable.id}" %></li> 
    <% end %> 
</ul> 

Все еще, это кажется уродливым для меня. Мне все равно было бы очень интересно увидеть что-то более рациональное и умное.

 Смежные вопросы

  • Нет связанных вопросов^_^