Table of Contents

Interesujące sztuczki magiczne w ActiveRecord

Wzięte z: http://www.confreaks.com/videos/2729-wickedgoodruby-activerecord-is-still-magical

scopes

Nakładając kilka na siebie z tym samym atrubytem, ostatni jest brany pod uwagę:

class Car < ActiveRecord::Base
  scope :good, where(:id => 1)
  scope :bad,  where(:id => 2)
end
 
Car.good.bad
SELECT "cars".* FROM "cars" WHERE "cars"."id" = 2
 
Car.bad.good
SELECT "cars".* FROM "cars" WHERE "cars"."id" = 1

Ale gdy zrobimy to samo bez użycia scopów:

Car.where(:id => 1).where(:id => 2)
SELECT "cars".* FROM "cars" WHERE "cars"."id" = 1 AND "cars"."id" = 2

Fixed in Rails 4.

Callbacks