Searchjoy::Search 的未定义方法“转换”

问题描述 投票:0回答:0

忽略这个问题...刚刚意识到我们使用的是 searchkick gem

<3
而不是
<=3
。该死的!

解决办法:升级到3,然后配合searchjoy使用。


我正在努力改进 Rails 4.2 项目中的搜索,但遇到了 gem 的问题。

在 Searchjoy ruby gem (v. 0.3.2) 文档中,它指出我们可以简单地通过调用

search.convert
search.convert(product)
来转换用户搜索。但是现在在我的 Rails 应用程序中出现错误
Undefined method 'convert' for Searchjoy::Search
。当我输入日志语句
search.methods
查找实际可用的方法时,它显示确实在Searchjoy搜索中没有
convert
方法。

我正在阅读的文档是从 ruby gems 页面链接的 0.3.2 文档:https://www.rubydoc.info/gems/searchjoy/0.3.2/Searchjoy/Search#convert-instance_method

我们将它与 searchkick 和 elasticsearch 结合使用。当需要搜索时,从 searchkick 搜索结果中获取 searchjoy 搜索 ID

results.search.search
,其中
results
是 searchkick 结果对象,
results.search
是 searchkick 搜索对象,
results.search.search
是 searchkick 关联的 searchjoy 搜索。这就是我们为用户(其他用户寻求)设置模型的方式:

class User < ActiveRecord::Base
  has_many :searches, class_name: "Searchjoy::Search", as: :convertable
  has_many :conversions, class_name: "Searchjoy::Conversion", as: :convertable

  searchkick conversions: [:conversions]

...
  def search_data
    {
      ...
      conversions: searches.group(:query).uniq.count(:user_id)
     }
  end
...

有人知道我在这里可能做错了什么吗?

ruby-on-rails ruby elasticsearch search
© www.soinside.com 2019 - 2024. All rights reserved.