我终于想出了如何实现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技能让我失望的地方。
有什么建议吗?任何人都知道完成这个更优雅的方式?任何想法/建议都非常感谢。