警告:不推荐对关系调用搜索

WARNING: calling search on a relation is deprecated

当我们将代码库升级到 searchkick 4.4 时,我不断收到此错误。我尝试在网上搜索但无济于事。

所以我们有一个 Opportunity 模型,我们在其中调用对 ActiveRecord 对象集合的搜索 return 我们的搜索结果:

results = r.search q, fields: [:search_term], match: :word_middle, order: { created_at: :desc}

r 是我们调用搜索的集合。这是抛出此错误的原因吗?如果是,我该如何解决它,我们在 运行 search.

之前对查询进行了大量条件检查和查询

是的,这正是您看到此警告的原因。在下一个主要版本中将不会有搜索关系的选项。这是重大更改,因此如果您将来要将 gem 更新到更高版本,则需要更新您的代码以遵循 where section。您只需要翻译您的关系以包含在 where 部分。