aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/spawn_methods.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-04 01:05:19 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-04 01:05:19 +0100
commiteca11bfdb5d3cf375faf8a24e2dc0cc5abd20f92 (patch)
treed4c36dc7a14a280a948577f065132f74186f3891 /activerecord/lib/active_record/relation/spawn_methods.rb
parentb0947bf97c0ac313799f6f1ca739b5666f5fe19f (diff)
parenta68165833a7ba50a1e3d731afe8934d19e3ced99 (diff)
downloadrails-eca11bfdb5d3cf375faf8a24e2dc0cc5abd20f92.tar.gz
rails-eca11bfdb5d3cf375faf8a24e2dc0cc5abd20f92.tar.bz2
rails-eca11bfdb5d3cf375faf8a24e2dc0cc5abd20f92.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activerecord/lib/active_record/relation/spawn_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/spawn_methods.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/spawn_methods.rb b/activerecord/lib/active_record/relation/spawn_methods.rb
index a637e97155..4ecee8c634 100644
--- a/activerecord/lib/active_record/relation/spawn_methods.rb
+++ b/activerecord/lib/active_record/relation/spawn_methods.rb
@@ -6,6 +6,7 @@ module ActiveRecord
relation.preload_associations = @preload_associations
relation.eager_load_associations = @eager_load_associations
relation.includes_associations = @includes_associations
+ relation.create_with_attributes = @create_with_attributes
relation.table = table
relation
end
@@ -32,6 +33,14 @@ module ActiveRecord
merged_order = relation_order.present? ? relation_order : order_clause
merged_relation = merged_relation.order(merged_order)
+ merged_relation.create_with_attributes = @create_with_attributes
+
+ if @create_with_attributes && r.create_with_attributes
+ merged_relation.create_with_attributes = @create_with_attributes.merge(r.create_with_attributes)
+ else
+ merged_relation.create_with_attributes = r.create_with_attributes || @create_with_attributes
+ end
+
merged_wheres = @relation.wheres
r.wheres.each do |w|
@@ -56,6 +65,7 @@ module ActiveRecord
end
result.readonly = self.readonly unless skips.include?(:readonly)
+ result.create_with_attributes = @create_with_attributes unless skips.include?(:create_with)
result = result.joins(@relation.joins(@relation)) unless skips.include?(:joins)
result = result.group(@relation.groupings) unless skips.include?(:group)