2014-01-27 64 views
9

我有一个rails应用程序,我从Sphinx切换到ElasticSearch并使用gem searchkick。searchkick索引相关模型字段

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

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

名称,介绍和生物是老师的属性,但我想索引的名字OD associeted给老师的标签。我怎样才能做到这一点?

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

回答

20

不久问这个问题后,我发现了github page上的问题之一的解决方案:

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

这索引正确的属性。

+2

小语法修正,它应该是 - 'tag_name:tags.map(&:name)' –

+1

@AyrtonSenna谢谢,刚刚编辑它。 –

相关问题