mirror of https://github.com/rails/rails
Merge pull request #21974 from jbranchaud/reorder-has-many-assocation-constraints
Reorder application of has_many association constraints.
This commit is contained in:
commit
f684b7ac8c
|
@ -2181,6 +2181,26 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
|
|||
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 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
|
|||
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 @@ class Post < ActiveRecord::Base
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue