diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-02-14 11:51:56 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-02-14 11:51:56 -0800 |
commit | 0123ceb9cd1ae352308184852cae1edbd62155e1 (patch) | |
tree | e52d0c9c4fdca1f5e263e38faa10877eaa3190ec /activerecord/lib/active_record/associations/through_association.rb | |
parent | 6f4e3ffd0f42c92a00536e7e1356be3e8cf37639 (diff) | |
parent | b9ea751d0e56bd00d341766977a607ed3f7ddd0f (diff) | |
download | rails-0123ceb9cd1ae352308184852cae1edbd62155e1.tar.gz rails-0123ceb9cd1ae352308184852cae1edbd62155e1.tar.bz2 rails-0123ceb9cd1ae352308184852cae1edbd62155e1.zip |
Merge remote branch 'jonleighton/association_fixes'
* jonleighton/association_fixes:
Add a transaction wrapper in add_to_target. This means that #build will now also use a transaction. IMO this is reasonable given that the before_add and after_add callbacks might do anything, and this great consistency allows us to abstract out the duplicate code from #build and #create.
Inline ensure_owner_is_persisted! as it is only called from one place
@target should always be an array
Rename add_record_to_target_with_callbacks to add_to_target
Don't pass the block through build_record
Move create and create! next to build
Get rid of create_record as it is not only used in one place
Get rid of AssociationCollection#save_record
Fix test/cases/connection_pool_test.rb for sqlite3 in-memory db
Add interpolation of association conditions back in, in the form of proc { ... } rather than instance_eval-ing strings
Diffstat (limited to 'activerecord/lib/active_record/associations/through_association.rb')
-rw-r--r-- | activerecord/lib/active_record/associations/through_association.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/through_association.rb b/activerecord/lib/active_record/associations/through_association.rb index ab593d09b9..0550bae408 100644 --- a/activerecord/lib/active_record/associations/through_association.rb +++ b/activerecord/lib/active_record/associations/through_association.rb @@ -119,14 +119,14 @@ module ActiveRecord scope = scope.where(@reflection.through_reflection.klass.send(:type_condition)) end - scope = scope.where(@reflection.source_reflection.options[:conditions]) + scope = scope.where(interpolate(@reflection.source_reflection.options[:conditions])) scope.where(through_conditions) end # If there is a hash of conditions then we make sure the keys are scoped to the # through table name if left ambiguous. def through_conditions - conditions = @reflection.through_reflection.options[:conditions] + conditions = interpolate(@reflection.through_reflection.options[:conditions]) if conditions.is_a?(Hash) Hash[conditions.map { |key, value| |