diff options
-rw-r--r-- | activerecord/lib/active_record/associations/belongs_to_association.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/associations/builder/belongs_to.rb | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb index 4a4f88bb94..a2432e389a 100644 --- a/activerecord/lib/active_record/associations/belongs_to_association.rb +++ b/activerecord/lib/active_record/associations/belongs_to_association.rb @@ -21,8 +21,8 @@ module ActiveRecord self.target = record end - def default(record) - writer(record) if reader.nil? + def default(&block) + writer(instance_exec(&block)) if reader.nil? end def reset diff --git a/activerecord/lib/active_record/associations/builder/belongs_to.rb b/activerecord/lib/active_record/associations/builder/belongs_to.rb index 50a1c39ccf..2b9dd8aae8 100644 --- a/activerecord/lib/active_record/associations/builder/belongs_to.rb +++ b/activerecord/lib/active_record/associations/builder/belongs_to.rb @@ -121,7 +121,7 @@ module ActiveRecord::Associations::Builder # :nodoc: def self.add_default_callbacks(model, reflection) model.before_validation lambda { |o| - o.association(reflection.name).default o.instance_exec(&reflection.options[:default]) + o.association(reflection.name).default(&reflection.options[:default]) } end |