diff options
author | Steve Klabnik <steve@steveklabnik.com> | 2012-06-15 11:19:40 +0200 |
---|---|---|
committer | Steve Klabnik <steve@steveklabnik.com> | 2012-06-18 14:53:03 -0400 |
commit | 14fc8b34521f8354a17e50cd11fa3f809e423592 (patch) | |
tree | 1e8f618d53ae20f55720e5a29d64dfb5c21f811b /activerecord/lib/active_record/relation | |
parent | 568394659c3e56581c684df77c0cc0e6e264a99f (diff) | |
download | rails-14fc8b34521f8354a17e50cd11fa3f809e423592.tar.gz rails-14fc8b34521f8354a17e50cd11fa3f809e423592.tar.bz2 rails-14fc8b34521f8354a17e50cd11fa3f809e423592.zip |
Removing composed_of from ActiveRecord.
This feature adds a lot of complication to ActiveRecord for dubious
value. Let's talk about what it does currently:
class Customer < ActiveRecord::Base
composed_of :balance, :class_name => "Money", :mapping => %w(balance amount)
end
Instead, you can do something like this:
def balance
@balance ||= Money.new(value, currency)
end
def balance=(balance)
self[:value] = balance.value
self[:currency] = balance.currency
@balance = balance
end
Since that's fairly easy code to write, and doesn't need anything
extra from the framework, if you use composed_of today, you'll
have to add accessors/mutators like that.
Closes #1436
Closes #2084
Closes #3807
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index e0bb84d55a..529ddb5e31 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -562,8 +562,7 @@ module ActiveRecord when String, Array [@klass.send(:sanitize_sql, other.empty? ? opts : ([opts] + other))] when Hash - attributes = @klass.send(:expand_hash_conditions_for_aggregates, opts) - PredicateBuilder.build_from_hash(table.engine, attributes, table) + PredicateBuilder.build_from_hash(table.engine, opts, table) else [opts] end |