aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/CHANGELOG')
-rw-r--r--activerecord/CHANGELOG21
1 files changed, 21 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index efec88c651..f0151360cf 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,26 @@
*SVN*
+* Added extension capabilities to has_many and has_and_belongs_to_many proxies [DHH]. Example:
+
+ class Account < ActiveRecord::Base
+ has_many :people, :extend => Module.new {
+ def find_or_create_by_name(name)
+ first_name, *last_name = name.split
+ last_name = last_name.join " "
+
+ find_by_first_name_and_last_name(first_name, last_name) ||
+ create({ :first_name => first_name, :last_name => last_name })
+ end
+ }
+ end
+
+ person = Account.find(:first).people.find_or_create_by_name("David Heinemeier Hansson")
+ person.first_name # => "David"
+ person.last_name # => "Heinemeier Hansson"
+
+ Note that the anoymous module must be declared using brackets, not do/end (due to order of evaluation).
+
+
* A missing primary key column shouldn't raise an error when generating its error message. [Don Park <don.park@gmail.com>]
* Changed :dbfile to :database for SQLite adapter for consistency (old key still works as an alias) #2644 [Dan Peterson]