aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/collection_association.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-06-04 16:08:40 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-06-04 23:28:55 +0900
commitc256d02f010228d260b408e8b7fda0a4bcb33f39 (patch)
tree45467f45eb82fabb5e58de22a3e5f3349f9c2862 /activerecord/lib/active_record/associations/collection_association.rb
parent69d91cd6a6a734ee1c383eac8c45e3cdc9f781b9 (diff)
downloadrails-c256d02f010228d260b408e8b7fda0a4bcb33f39.tar.gz
rails-c256d02f010228d260b408e8b7fda0a4bcb33f39.tar.bz2
rails-c256d02f010228d260b408e8b7fda0a4bcb33f39.zip
Initialization block is a part of `build_record`
Should be done before `before_add` callbacks.
Diffstat (limited to 'activerecord/lib/active_record/associations/collection_association.rb')
-rw-r--r--activerecord/lib/active_record/associations/collection_association.rb7
1 files changed, 2 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb
index d61d105544..7f1df9a21d 100644
--- a/activerecord/lib/active_record/associations/collection_association.rb
+++ b/activerecord/lib/active_record/associations/collection_association.rb
@@ -105,9 +105,7 @@ module ActiveRecord
if attributes.is_a?(Array)
attributes.collect { |attr| build(attr, &block) }
else
- add_to_target(build_record(attributes)) do |record|
- yield(record) if block_given?
- end
+ add_to_target(build_record(attributes, &block))
end
end
@@ -361,8 +359,7 @@ module ActiveRecord
attributes.collect { |attr| _create_record(attr, raise, &block) }
else
transaction do
- add_to_target(build_record(attributes)) do |record|
- yield(record) if block_given?
+ add_to_target(build_record(attributes, &block)) do |record|
insert_record(record, true, raise) {
@_was_loaded = loaded?
@association_ids = nil