忽略这个问题...刚刚意识到我们使用的是 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
...
有人知道我在这里可能做错了什么吗?