メタサーチの検索方法を連鎖させるにはどうすればよいですか?
@result = User.search(params[:search]).search(params[:filters])
ActiveRecordのチェーンメソッドを次のように呼び出すことができます
User.active.male.where( age: 14..20)
その連鎖はメタ検索の結果で可能ですか?
メタサーチの検索方法を連鎖させるにはどうすればよいですか?
@result = User.search(params[:search]).search(params[:filters])
ActiveRecordのチェーンメソッドを次のように呼び出すことができます
User.active.male.where( age: 14..20)
その連鎖はメタ検索の結果で可能ですか?
動作しました。同じ問題が発生した場合は、次の手順を試してください。
の検索メソッドは、モデルの名前をmeta_search
返します。Meta_searchは、このオブジェクトのメソッドを提供します。メソッドを呼び出してオブジェクトを取得してから、そのオブジェクトに対してもう一度検索メソッドを呼び出すことができます。私が正確に話していることを確認するには、以下のコードを参照してください。MetaSearch::Search::ModelName
ModelName
relation
relation
ActiveRecord::Relation
@result = User.search(params[:search])
@search = @result.relation.search(params[:filters])
@result
これがのインスタンスであるため、メソッドをMetaSearch::Search::User
呼び出してieのインスタンスを取得できますrelation
ActiveRecord::Relation
@result.relation
次に、このインスタンスで検索メソッドを再度呼び出すことができます。すなわち
@result.relation.search(params[:filters])
一度に検索するのはどうですか
@result = User.search params[:search].merge(params[:filters])