如何链接元搜索的搜索方法?
@result = User.search(params[:search]).search(params[:filters])
我们可以在ActiveRecord上调用链式方法,如
User.active.male.where( age: 14..20)
它可以在元搜索结果中链接吗?
答案 0 :(得分:3)
我得到了它的工作..如果你有同样的问题,你可以试试。
meta_search
的搜索方法会返回MetaSearch::Search::ModelName
,其中ModelName
是模型的名称。 Meta_search为此对象提供方法relation
。您可以调用relation
方法获取ActiveRecord::Relation
对象,然后可以再次对该对象调用搜索方法。请参阅下面的代码,了解我正在谈论的内容。
@result = User.search(params[:search])
@search = @result.relation.search(params[:filters])
此处@result
是MetaSearch::Search::User
的实例,因此我们可以调用relation
方法获取ActiveRecord::Relation
的实例,即
@result.relation
然后我们可以在这个实例上再次调用搜索方法。即
@result.relation.search(params[:filters])
答案 1 :(得分:2)
一次性搜索
@result = User.search params[:search].merge(params[:filters])