是否有任何插件用于复杂的mongoid搜索(如ActiveRecord的meta_search)?

时间:2012-04-16 02:16:59

标签: ruby mongoid meta-search

我尝试了meta_search,但在我的模型中添加“include MetaSearch :: Searches :: ActiveRecord”之后,当运行“MyModel.search(params [:search])”时,它引发了一个错误“undefined method`joins_values'”

我想我不需要全文,所以我认为以下宝石现在不适合我的项目:: mongoid_fulltext mongoid,狮身人面像 sunspot_mongoid mongoid_search

我尝试了一个名为scoped-search的旧宝石 我可以让它成功例如:

get :search do
  @search        = Notification.scoped_search(params[:search]
  search_scope   = @search.scoped
  defaul_scope   = current_user.notifications
  result_scope   = search_scope.merge defaul_scope
  @notifications = result_scope

  render 'notifications/search'
end

但允许在我的模型中调用任何范围。

这项工作有“最佳实践”吗?

1 个答案:

答案 0 :(得分:0)

如果你想限制你想在scoped_search上使用的范围,你可以过滤你的params [:search],如:

def limit_scope_search
  params[:search].select{|k,v| [:my_scope, :other_scope_authorized].include?(k) }
end