Work in progress, use at your own risk but feel free to contribute :)
Add this line to your application's Gemfile:
gem 'arel_search'
And then execute:
$ bundle
Or install it yourself as:
$ gem install arel_search
params = {'orders.status.eq' => 50}
ArelSearch::Base.new(Order, params).search
params = {'orders.status.eq' => 50, 'customer.name.matches' => 'Marcus'}
ArelSearch::Base.new(Order, params).search
ArelSearch doens't support nested associations yet but since a scope is returned, you can always append more conditions and associations.
params = {'orders.status.eq' => 50, 'customer.name.matches' => 'Marcus'}
scope = ArelSearch::Base.new(Order, params).search
scope.joins(:order_items).where("order_items.sku = ?", '123')
params = {'orders.status.eq' => 50, 'customer.name.matches' => 'Marcus'}
ArelSearch::Base.new(Order, params).search(page: 1, per_page: 10)
- Work with namespace
- Allow 'OR' conditions
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request