ruby-on-rails - searchkick 索引相关模型字段

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

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

我有一个模型 Teacher 和一个模型 Tags(通过 gem),其中 Teacher 可以关联多个标签。在 Teacher 模型中,我定义了这样的索引:

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

姓名、简介和简历是教师属性,但我想索引与教师相关的标签的名称。我怎样才能做到这一点?

现在这样,是索引对象(关系)的名字,如何索引标签对象里面的属性名?

最佳答案

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

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

索引正确的属性。

关于ruby-on-rails - searchkick 索引相关模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382868/

相关文章:

ruby-on-rails - 如何将 ActiveRecord 表名转换为模型类名

ruby-on-rails - 如何使用 wicked_pdf 将 pdf 文件保存在公用文件夹中

node.js - 我对 Sails.js 水线一对一关联逻辑感到困惑

ruby-on-rails - 为什么我们需要 nginx with thin 在生产环境中?

ruby-on-rails - 创建记录时出错 : nil object instead of array?

ruby-on-rails - Ruby 中的符号和变量有什​​么区别?

ruby - 如何检查模型在 Rails 中是否有现有的模型关联?

ruby-on-rails - 如何更新 Gem 上的单个提交?

java - 避免通过 JPA 将 'null' 值插入数据库表

php - 列出资源时检查关系