Searchkick индекс связанных полей модели

У меня есть приложение rails, и я переключаюсь со Sphinx на ElasticSearch и использую gem searchkick.

У меня есть модель Учитель и модель Теги (через драгоценный камень), где Учитель может иметь несколько связанных тегов. В модели Учителя я определил индекс следующим образом:

def search_data
    {
      name: name,
      intro: intro,
      bio: bio,
      tag_name: tags.name
    }
end

Имя, вступление и биография являются атрибутами Учителя, но я хочу проиндексировать имя тегов, связанных с учителем. Как я могу это сделать?

Как это сейчас, он индексирует имя объекта (отношения), как я могу индексировать имя атрибута внутри объекта тега?

1 ответ

Решение

Вскоре после того, как задал вопрос, я нашел решение по одной из проблем на странице github:

def search_data
    {
      name: name,
      intro: intro,
      bio: bio,
      tag_name: tags.map(&:name)
    }
end

Это индексирует правильные атрибуты.

Другие вопросы по тегам