====== 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.