Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Better ActiveRecord finders
Ruby
Failed to load latest commit information.
lib Version bump
test Moar fixes
.gitignore Updated for Rails 3.2.9
.rvmrc Initial checkin
Gemfile Fixed for Rails 4
HISTORY.txt Ignore polymorphic associations on implicit joins
MIT-LICENSE.txt Added readme and license
README.markdown Version bump
Rakefile Initial checkin
TODO Aded TODO
better_ar.gemspec Fixed for Rails 4

README.markdown

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)

Something went wrong with that request. Please try again.