Я использую gem pg_search
и выполняю мульти-поиск для Веб-сайта и Публикация таблиц. Я могу искать по названию записи, но я также хочу иметь возможность искать записи по категориям, к которым они принадлежат.
Так, например, когда я набираю «типографский» (название категории) для поиска ввода, должны быть перечислены все записи веб-сайта и публикации в этой категории, а также все записи, которые имеют «Типографский» в заголовке.
Я думаю, что это можно сделать с помощью ассоциации, но я не мог заставить это работать ?♂️
_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
Модели / website.rb
class Website < ApplicationRecord
include PgSearch
multisearchable :against => [:title, :website_url],
using: {tsearch: {disctionary: "english"}},
associated_against: {website_category: :title},
ignoring: :accents