В моем приложении есть сущность под названием Талант, которая может иметь много талантов.Например:
#model/talent.rb
class Talent < ApplicationRecord
searchkick
has_many :talent_talent_abilities, dependent: :destroy
has_many :talent_abilities, through: :talent_talent_abilities
scope :search_import, -> { includes(:talent_type, :talent_abilities, :talent_talent_abilities, :talent_primary_equipments, :talent_interests) }
Так, например, если я захожу на консоль и выполняю:
t.talent_abilities =
TalentAbility Load (11.7ms) SELECT "talent_abilities".* FROM "talent_abilities" INNER JOIN "talent_talent_abilities" ON "talent_abilities"."id" = "talent_talent_abilities"."talent_ability_id" WHERE "talent_talent_abilities"."talent_id" = $1 LIMIT $2 [["talent_id", 13], ["LIMIT", 11]]
Я хочу это, по моему поисковому запросу я могу искать, основываясь на том, что пользовательимеет или нет талантливую способность.Итак, в этом примере я хочу, чтобы, если я добавлял «Подводное плавание» в свой поиск, он возвращал все таланты, которые имеют talent_ability.name Подводное плавание ».
Я добавил этот метод в свою модель талантов:
def search_data
{
name: user.full_name,
gender: gender,
ethnicity: ethnicity,
eye_color: eye_color,
hair_color: hair_color,
type: talent_type&.name,
talent_ability: talent_abilities.name
}
Но если я выполню поиск по слову "Подводное плавание", я не получу никаких результатов?
Что я здесь не так делаю? Это правильный способ добавить отношения напоиск searchkick?
Спасибо