BetterAr
BetterAr replaces the .all, .first and .count methods for ActiveRecord.
Install
Bundler:
gem 'better_ar'
Command line:
gem install better_ar
Usage
Now a single hash can be passed to ActiveRecord::Base.all that contains not only the where values but also other scopes like 'limit' and 'order' and also implicit joins
User.all(:age => 10, :limit! => 5, :offset! => 10, :order! => :name, :records => {:name => 'test'})
is the same as
User.joins(:records).where(:age => 10, :records => {:name => 'test'}).limit(5).offset(10).order(:name)
It also works on association collections:
User.first.records.all(:level => 2, :limit! => 5, :offset! => 10, :order! => :name, :reports => {:name => 'test'})
This would be the same as:
User.first.records.joins(:reports).where(:level => 2, :reports => {:name => 'test'}).limit(5).offset(10).order(:name)
While this may seem less concise the advantage is being able to dynamically construct the query with a single hash in code.
Legacy
If the params contain :condition it will fall back to the legacy method.
Other
Brian Cardarella (c) 2011
License: MIT (see MIT-LICENSE.txt)