aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models
diff options
context:
space:
mode:
authorAlireza Bashiri <azbshiri@gmail.com>2018-07-27 11:20:45 +0430
committerAlireza Bashiri <azbshiri@gmail.com>2018-08-02 08:27:03 +0430
commitdc16cdd89a93817203e7c8a49af174fde81402e0 (patch)
tree249f5b7b45cabe0aed07046f21373acc58d397c5 /activerecord/test/models
parent67fa1ad0c3b811aa527ec748e14d95dee2db9f69 (diff)
downloadrails-dc16cdd89a93817203e7c8a49af174fde81402e0.tar.gz
rails-dc16cdd89a93817203e7c8a49af174fde81402e0.tar.bz2
rails-dc16cdd89a93817203e7c8a49af174fde81402e0.zip
Call build when extend with nested attributes defined
What? From now on when `accepts_nested_attributes_for` defined and `extend` option added the overwritten `build` method being called. [Alireza Bashiri, Martins Polakovs]
Diffstat (limited to 'activerecord/test/models')
-rw-r--r--activerecord/test/models/pirate.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/test/models/pirate.rb b/activerecord/test/models/pirate.rb
index c8617d1cfe..fd5083e597 100644
--- a/activerecord/test/models/pirate.rb
+++ b/activerecord/test/models/pirate.rb
@@ -17,7 +17,13 @@ class Pirate < ActiveRecord::Base
after_remove: proc { |p, pa| p.ship_log << "after_removing_proc_parrot_#{pa.id}" }
has_and_belongs_to_many :autosaved_parrots, class_name: "Parrot", autosave: true
- has_many :treasures, as: :looter
+ module PostTreasuresExtension
+ def build(attributes = {})
+ super({ name: "from extension" }.merge(attributes))
+ end
+ end
+
+ has_many :treasures, as: :looter, extend: PostTreasuresExtension
has_many :treasure_estimates, through: :treasures, source: :price_estimates
has_one :ship