我尝试了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
但允许在我的模型中调用任何范围。
这项工作有“最佳实践”吗?
答案 0 :(得分:0)
如果你想限制你想在scoped_search上使用的范围,你可以过滤你的params [:search],如:
def limit_scope_search
params[:search].select{|k,v| [:my_scope, :other_scope_authorized].include?(k) }
end