====== 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 ======
* Callbacki są wywoływane w porządku, w jakim są umieszczone w modelu,
* prawie zawsze umieszczamy je po deklaracji asocjacji, ponieważ asocjacje same są zaimplementowane jako callbacki.