Я делаю мульти поиск для таблиц Post и Website. У меня есть is_approved boolean для всех записей. В настоящее время pg_search находит все сообщения, но мне нужно показывать только сообщения, для которых is_approved == true.
Я знаю, что могу проверить в цикле состояние "если" для поля is_approved, но это звучит не очень эффективно. Я считаю, что у 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
pg_search.rb
PgSearch.multisearch_options = {
using: {
tsearch: { dictionary: 'english' }
}
}
post.rb
class Post < ApplicationRecord
include PgSearch
multisearchable :against => :title
website.rb
class Website < ApplicationRecord
include PgSearch
multisearchable :against => [:title, :website_url]