gpt4 book ai didi

ruby-on-rails-3 - 如何使用 pg_search multisearch 创建一个带有结果链接的搜索结果页面?

转载 作者:行者123 更新时间:2023-12-04 23:06:37 35 4
gpt4 key购买 nike

我终于想出了如何实现 pg_search 的多搜索功能。但是我在制作一个可用的搜索结果页面时遇到了麻烦,该页面显示指向包含搜索词的各种文章和常见问题的链接。这是使用 Rails 3.2.3 的非常基本的设置:

型号:

我有一个文章和一个 Faqs 模型,都有“标题”和“内容”属性,这两个模型中的代码:

include PgSearch
multisearchable :against => [:title, :content]

搜索表单查看代码:

搜索表单将所有内容传递给名为“results”的 Controller 。
<%= form_tag result_index_path, method: :get do %>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "GO", name: nil %>
<% end %>

结果 Controller :
class ResultController < ApplicationController
def index
@pg_search_documents = PgSearch.multisearch(params[:query])
end
end

我想制作一个搜索结果页面,显示找到的每个结果的标题,并带有返回该项目的链接。我想出了如何从@pg_search_documents 中提取“class”属性。我的想法是在结果页面上做这样的事情:
<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”小写和复数,我就可以回家了。我尝试在模型和 Controller 中编写各种方法,并尝试编写一个助手。但这就是我的 Rails 技能失败的地方。

有什么建议?有谁知道更优雅的方式来完成这个?非常感谢任何想法/建议。

最佳答案

我做了类似的事情,只是使用

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

让 Rails 动态创建关联记录的路径。

关于ruby-on-rails-3 - 如何使用 pg_search multisearch 创建一个带有结果链接的搜索结果页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10775771/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com