Module: Alchemy::PgSearch
- Extended by:
- Config
- Defined in:
- lib/alchemy-pg_search.rb,
lib/alchemy/pg_search/config.rb,
lib/alchemy/pg_search/engine.rb,
lib/alchemy/pg_search/version.rb,
app/jobs/alchemy/pg_search/index_page_job.rb,
app/helpers/alchemy/pg_search/search_helper.rb,
lib/generators/alchemy/pg_search/views/views_generator.rb,
lib/generators/alchemy/pg_search/install/install_generator.rb
Defined Under Namespace
Modules: Config, PageExtension, PgSearchDocumentExtension, SearchHelper Classes: Engine, IndexPageJob, InstallGenerator, ViewsGenerator
Constant Summary collapse
- VERSION =
"6.1.0"
Class Method Summary collapse
-
.rebuild(clean_up: true, transactional: true) ⇒ Object
Reindex all supported Alchemy pages.
-
.search(query, ability: nil) ⇒ ActiveRecord::Relation
search for page results.
Methods included from Config
Class Method Details
.rebuild(clean_up: true, transactional: true) ⇒ Object
Reindex all supported Alchemy pages
21 22 23 24 25 26 27 |
# File 'lib/alchemy-pg_search.rb', line 21 def self.rebuild(clean_up: true, transactional: true) ::PgSearch::Multisearch.rebuild( Alchemy::Page, clean_up: clean_up, transactional: transactional ) end |
.search(query, ability: nil) ⇒ ActiveRecord::Relation
search for page results
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/alchemy-pg_search.rb', line 35 def self.search(query, ability: nil) query = ::PgSearch.multisearch(query).includes(:searchable) if ability inner_ability_select = Alchemy::Page.select(:id).merge(Alchemy::Page.accessible_by(ability, :read)) query = query.where("page_id IS NULL OR page_id IN (#{inner_ability_select.to_sql})") end query end |