Поиск записей под ключевым словом с именем категории с помощью pg_search на Rails 5 - PullRequest
0 голосов
/ 29 июня 2018

Я использую 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
...