提交 f684b7ac 编写于 作者: R Rafael Mendonça França

Merge pull request #21974 from jbranchaud/reorder-has-many-assocation-constraints

Reorder application of has_many association constraints.
......@@ -2181,6 +2181,26 @@ def test_collection_association_with_private_kernel_method
assert_equal [bulb1, bulb2], car.all_bulbs.sort_by(&:id)
end
test "can unscope and where the default scope of the associated model" do
Car.has_many :other_bulbs, -> { unscope(where: [:name]).where(name: 'other') }, class_name: "Bulb"
car = Car.create!
bulb1 = Bulb.create! name: "defaulty", car: car
bulb2 = Bulb.create! name: "other", car: car
assert_equal [bulb1], car.bulbs
assert_equal [bulb2], car.other_bulbs
end
test "can rewhere the default scope of the associated model" do
Car.has_many :old_bulbs, -> { rewhere(name: 'old') }, class_name: "Bulb"
car = Car.create!
bulb1 = Bulb.create! name: "defaulty", car: car
bulb2 = Bulb.create! name: "old", car: car
assert_equal [bulb1], car.bulbs
assert_equal [bulb2], car.old_bulbs
end
test 'unscopes the default scope of associated model when used with include' do
car = Car.create!
bulb = Bulb.create! name: "other", car: car
......@@ -2358,8 +2378,4 @@ def test_ids_reader_memoization
assert_equal [bulb.id], car.bulb_ids
assert_no_queries { car.bulb_ids }
end
def test_has_many_association_with_rewhere
assert_equal 'Don\'t think too hard', posts(:welcome).comments_with_rewhere.first.body
end
end
......@@ -67,7 +67,6 @@ def greeting
end
has_many :comments_with_extend_2, extend: [NamedExtension, NamedExtension2], class_name: "Comment", foreign_key: "post_id"
has_many :comments_with_rewhere, -> { rewhere(post_id: 2) }, class_name: "Comment"
has_many :author_favorites, :through => :author
has_many :author_categorizations, :through => :author, :source => :categorizations
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册