gpt4 book ai didi

ruby-on-rails - MetaSearch Gem 使用轮胎 Gem 覆盖搜索方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:27 24 4
gpt4 key购买 nike

我已将全文搜索数据库添加到我现有的 Web 应用程序中,该应用程序是使用 Rails 构建的并使用 active_admin gem。全文数据库建立在 Elasticsearch 之上,并使用 Tire gem。 active_admin gem 具有定义 Model.search 方法的元搜索 gem 的依赖项要求。

问题是元搜索 gem 覆盖了轮胎搜索 gem 的搜索方法,我似乎无法将轮胎 gem 中的搜索方法别名返回到模型中。有谁知道我该怎么做?

-- 解决方案 --

更新:解决方案是设置一个初始化程序以添加以下方法:

def search_for(*args,&block)
tire.__send__(:search, *args, &block)
end

最佳答案

我想出了一个可行的解决方案。基本上,您只需将搜索方法设置为 search_for 而不是 search

在 app/helpers 中创建一个名为 tire_helper.rb 的帮助程序文件。

module TireHelper

def search_for(*args,&block)
tire.__send__(:search, *args, &block)
end

end

对于每个使用轮胎的模型,然后使用这个:

class Model < ActiveRecord::Base

extend TireHelper
include Tire::Model::Search
include Tire::Model::Callbacks

mapping do
# your mappings
end

end

您现在可以使用以下方法在您的模型上正常搜索:

# with a string
query = Model.search_for('string')

# or with a block
query = Model.search_for do
#any of the same block stuff that Tire.search provides
end

关于ruby-on-rails - MetaSearch Gem 使用轮胎 Gem 覆盖搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com