searchkick索引相关的模型字段

时间:2014-01-27 14:03:38

标签: ruby-on-rails ruby-on-rails-3 orm elasticsearch searchkick

我有一个rails应用程序,我正在从Sphinx切换到ElasticSearch并使用gem searchkick。

我有一个模型教师和一个模型标签(通过一个宝石),教师可以有多个标签关联。在教师模型中,我已经定义了这样的索引:

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

名称,介绍和生物是教师属性,但我想索引与教师关联的标签的名称。我怎样才能做到这一点?

现在的方式,它索引对象的名称(关系),如何索引标记对象内的属性名称?

1 个答案:

答案 0 :(得分:21)

在提出问题后不久,我找到了关于github page上的一个问题的解决方案:

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

索引正确的属性。