2012-04-16 9 views
0

私のモデルに "include MetaSearch :: Searches :: ActiveRecord"を追加した後、 "MyModel.search(params [:search])"を実行すると "未定義メソッド` joins_values '"というエラーが発生しましたmongoid(ActiveRecordのためのmeta_searchのような)で複雑な検索のためのプラグインはありますか?

私はフルテキストを必要といけないと思うので、私は次のような宝石が今の私のプロジェクトに適していないと思います:: mongoid_fulltext mongoid-スフィンクス sunspot_mongoid mongoid_search

私はスコープの検索 という名前の古い宝石を試してみましたIたとえば、それを動作させることができます:

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

::のように[検索]を? – shingara

答えて

0

あなたはあなたがあなたのparamsをフィルタリングすることができ、あなたのscoped_searchに使いたい範囲を制限したい場合、検索にスコープの使用を制限したいのはなぜ

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

私は本当にmeta_search gemの "search_methods"を見逃しています。これは、検索フォームでスコープを使用できるホワイトリストを定義するために使用しています。 コントローラーのscarchableスコープをフィルタリングするのは悪い考えではないかもしれませんが、それは私にとっては大丈夫だと思います。 しかし、私の質問のポイントは "(ActiveRecordのためのmeta_searchのような)mongoidで複雑な検索のためのプラグインはありますか?" – RainChen

関連する問題