Properly handle scoping with has_many :through. Fixes #14537.
Add a CHANGELOG entry for the has_many :through scoping fix (See #14537 for details).
Simplify the code in target_scope
Minor improvement: Use the merge method on the relation instead of instance_eval directly.
Fix inconsistent behavior from String#pluralize

Before:
  When calling String#pluralize with count=1 then it returned same
  string, but with count other than 1, returned new string.

After:
  String#pluralize always return a new string.

  => Prevent mutation of a string inadvertently.
select! renamed to avoid name collision Array#select!

Fixes #14752

Select mimics the block interface of arrays, but does not mock the
block interface for select!. This change moves the api to be a
private method, _select!.
Merge pull request #14801 from kuldeepaggarwal/fix-string-inflection

Fix inconsistent behavior from String#pluralize
Merge pull request #14573 from habermann24/has_many_through_fix

Properly handle scoping with has_many :through. Fixes #14537.

Conflicts:
	activerecord/CHANGELOG.md
	activerecord/test/cases/associations/has_many_through_associations_test.rb
Merge pull request #14757 from estsauver/14752

Fix behavior of select! to be consistent with select #14752
Add CHANGELOG entry for #14757 [ci skip]
Fix syntax error
Perfer to define methods instead of calling test

This file is using this pattern already