Chain meta_search results



如何链接元搜索的搜索方法?

@result = User.search(params[:search]).search(params[:filters])

我们可以在 ActiveRecord 上调用链方法,例如

User.active.male.where( age: 14..20)

它的链接在元搜索的结果上是可能的吗?

我让它工作了。如果您遇到同样的问题,可以尝试以下操作。

meta_search 的搜索方法返回MetaSearch::Search::ModelName其中 ModelName 是模型的名称。Meta_search提供了为此对象relation的方法。可以调用relation方法来获取ActiveRecord::Relation对象,然后可以对该对象再次调用搜索方法。请参阅下面的代码以了解我到底在说什么。

@result = User.search(params[:search])
@search = @result.relation.search(params[:filters])

这里@resultMetaSearch::Search::User的实例,因此我们可以调用relation方法来获取ActiveRecord::Relation的实例,即

@result.relation

然后我们可以在这个实例上再次调用搜索方法。

@result.relation.search(params[:filters])

一次性搜索怎么样

@result = User.search  params[:search].merge(params[:filters])

最新更新