From cca316bb57cca8dfe1c21876cdc263ac0fd400ae Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 5 Jul 2023 18:45:26 -0700 Subject: [PATCH] Make models multisearchable We're going to start with Character, Summon, Weapon and Jobs --- app/models/character.rb | 10 ++++++++++ app/models/job.rb | 12 ++++++++++++ app/models/summon.rb | 10 ++++++++++ app/models/weapon.rb | 10 ++++++++++ 4 files changed, 42 insertions(+) diff --git a/app/models/character.rb b/app/models/character.rb index 6bb30a6..b89d3a1 100644 --- a/app/models/character.rb +++ b/app/models/character.rb @@ -3,6 +3,16 @@ class Character < ApplicationRecord include PgSearch::Model + multisearchable against: %i[name_en name_jp], + additional_attributes: lambda { |character| + { + name_en: character.name_en, + name_jp: character.name_jp, + granblue_id: character.granblue_id, + element: character.element + } + } + pg_search_scope :en_search, against: :name_en, using: { diff --git a/app/models/job.rb b/app/models/job.rb index 7cb8d6b..52ce307 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -1,9 +1,21 @@ # frozen_string_literal: true class Job < ApplicationRecord + include PgSearch::Model + belongs_to :party has_many :skills, class_name: 'JobSkill' + multisearchable against: %i[name_en name_jp], + additional_attributes: lambda { |job| + { + name_en: job.name_en, + name_jp: job.name_jp, + granblue_id: job.granblue_id, + element: 0 + } + } + belongs_to :base_job, foreign_key: 'base_job_id', class_name: 'Job', diff --git a/app/models/summon.rb b/app/models/summon.rb index cd9245a..59ce773 100644 --- a/app/models/summon.rb +++ b/app/models/summon.rb @@ -3,6 +3,16 @@ class Summon < ApplicationRecord include PgSearch::Model + multisearchable against: %i[name_en name_jp], + additional_attributes: lambda { |summon| + { + name_en: summon.name_en, + name_jp: summon.name_jp, + granblue_id: summon.granblue_id, + element: summon.element + } + } + pg_search_scope :en_search, against: :name_en, using: { diff --git a/app/models/weapon.rb b/app/models/weapon.rb index 9aedca3..fde26d2 100644 --- a/app/models/weapon.rb +++ b/app/models/weapon.rb @@ -3,6 +3,16 @@ class Weapon < ApplicationRecord include PgSearch::Model + multisearchable against: %i[name_en name_jp], + additional_attributes: lambda { |weapon| + { + name_en: weapon.name_en, + name_jp: weapon.name_jp, + granblue_id: weapon.granblue_id, + element: weapon.element + } + } + pg_search_scope :en_search, against: :name_en, using: {