From 0a7b481903b30fb8f533afb2bcc0e6dc202033fc Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Sun, 5 Sep 2010 20:26:24 -0300 Subject: Use scoped here to get the scoped where --- .../lib/active_record/associations/association_collection.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'activerecord/lib/active_record/associations') diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb index 132e9cf882..1221a56bbc 100644 --- a/activerecord/lib/active_record/associations/association_collection.rb +++ b/activerecord/lib/active_record/associations/association_collection.rb @@ -493,11 +493,9 @@ module ActiveRecord attrs.update(@reflection.options[:conditions]) if @reflection.options[:conditions].is_a?(Hash) ensure_owner_is_not_new - _scope = self.construct_scope[:create] - csm = @reflection.klass.send(:current_scoped_methods) - options = (csm.blank? || !_scope.is_a?(Hash)) ? _scope : _scope.merge(csm.where_values_hash) - - record = @reflection.klass.send(:with_scope, :create => options) do + scoped_where = scoped.where_values_hash + create_scope = scoped_where ? construct_scope[:create].merge(scoped_where) : construct_scope[:create] + record = @reflection.klass.send(:with_scope, :create => create_scope) do @reflection.build_association(attrs) end if block_given? -- cgit v1.2.3