Skip to content

Commit

Permalink
Merge pull request #28906 from georgeclaghorn/fix-belongs-to-default-…
Browse files Browse the repository at this point in the history
…with-lambda

Evaluate belongs_to :default option against the owner, not the association
  • Loading branch information
rafaelfranca committed Apr 27, 2017
1 parent c472bd3 commit b7777ee
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
Expand Up @@ -22,7 +22,7 @@ def replace(record)
end

def default(&block)
writer(instance_exec(&block)) if reader.nil?
writer(owner.instance_exec(&block)) if reader.nil?
end

def reset
Expand Down
Expand Up @@ -136,6 +136,24 @@ def self.name; "Temp"; end
assert_equal david, ship.developer
end

def test_default_with_lambda
model = Class.new(ActiveRecord::Base) do
self.table_name = "ships"
def self.name; "Temp"; end
belongs_to :developer, default: -> { default_developer }

def default_developer
Developer.first
end
end

ship = model.create!
assert_equal developers(:david), ship.developer

ship = model.create!(developer: developers(:jamis))
assert_equal developers(:jamis), ship.developer
end

def test_default_scope_on_relations_is_not_cached
counter = 0

Expand Down

0 comments on commit b7777ee

Please sign in to comment.