提交 fdf4eae5 编写于 作者: C Carlos Antonio da Silva

Merge pull request #7377 from brainopia/use_inversed_parent_for_first_and_last_child

Use inversed parent for first and last child of has_many association

[Backport] Closes #3223.

Conflicts:
	activerecord/lib/active_record/associations/collection_association.rb
上级 b3bea499
## Rails 3.2.9 (unreleased)
* Use inversed parent for first and last child of has_many association.
*Ravil Bayramgalin*
* Fix Column.microseconds and Column.fast_string_to_date to avoid converting
timestamp seconds to a float, since it occasionally results in inaccuracies
with microsecond-precision times. Fixes #7352.
......
......@@ -569,7 +569,7 @@ def first_or_last(type, *args)
args.shift if args.first.is_a?(Hash) && args.first.empty?
collection = fetch_first_or_last_using_find?(args) ? scoped : load_target
collection.send(type, *args)
collection.send(type, *args).tap {|it| set_inverse_instance it }
end
end
end
......
......@@ -259,6 +259,12 @@ def test_parent_instance_should_be_shared_with_replaced_via_accessor_children
assert_equal m.name, i.man.name, "Name of man should be the same after changes to replaced-child-owned instance"
end
def test_parent_instance_should_be_shared_with_first_and_last_child
man = Man.first
assert man.interests.first.man.equal? man
assert man.interests.last.man.equal? man
end
def test_trying_to_use_inverses_that_dont_exist_should_raise_an_error
assert_raise(ActiveRecord::InverseOfAssociationNotFoundError) { Man.find(:first).secret_interests }
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册