0

我尝试了 meta_search,但在我的模型中添加“include MetaSearch::Searches::ActiveRecord”后,运行“MyModel.search(params[:search])”时出现“未定义方法 `joins_values'”的错误

我认为我不需要全文,所以我认为以下 gem 现在不适合我的项目:: mongoid_fulltext mongoid-sphinx sunspot_mongoid mongoid_search

我尝试了一个名为 scoped-search 的旧 gem,我可以让它工作,例如:

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

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

有没有做这项工作的“最佳实践”?

4

1 回答 1

0

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

def limit_scope_search
  params[:search].select{|k,v| [:my_scope, :other_scope_authorized].include?(k) }
end
于 2012-04-16T07:39:38.280 回答