0

meta_search を試しましたが、"include MetaSearch::Searches::ActiveRecord" をモデルに追加した後、"MyModel.search(params[:search])" を実行すると、"undefined method `joins_values'" としてエラーが発生しました。

全文は必要ないと思うので、次の宝石は今の私のプロジェクトには適していないと思います:: 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 に答える