首页 > 解决方案 > 在 Rails 5 上使用 pg_search 在类别名称关键字下查找帖子

问题描述

我正在使用 gempg_search并对网站帖子表进行多重搜索。我可以按记录标题搜索,但我也希望能够根据记录所属的类别搜索记录。

因此,例如,当我键入“typographic”(类别名称)来搜索输入时,应该列出该类别下的所有网站和帖子记录,以及标题中包含“Typographic”的所有记录。

我认为它可以通过关联来完成,但我无法让它发挥作用‍♂️


_header.html.erb

<%= form_tag search_index_path, method: :get do %>
  <%= text_field_tag :query, params[:query], placeholder: "Search" %>
<% end %>

search_controller.rb

class SearchController < ApplicationController
  def index
    @pg_search_result = PgSearch.multisearch(params[:query])
  end
end

模型/post.rb

class Post < ApplicationRecord
  include PgSearch
  multisearchable :against => :title,
    using: {tsearch: {disctionary: "english"}},
    associated_against: {category: :title},
    ignoring: :accents

模型/网站.rb

class Website < ApplicationRecord
  include PgSearch
  multisearchable :against => [:title, :website_url],
    using: {tsearch: {disctionary: "english"}},
    associated_against: {website_category: :title},
    ignoring: :accents

标签: ruby-on-railsrubyruby-on-rails-5pg-search

解决方案


推荐阅读