Merge pull request #15595 from eileencodes/abstract-away-habtm-macro

Abstract away use of HABTM macro
Merge pull request #15596 from eileencodes/add-has_one-method-and-reuse

add has_one? method and reuse instead of checking macro
reuse available collection? check instead of macro

Reflection has an available method that is used to check if the
reflection is a collection. Any :has_many macro is considered a
collection and `collection?` should be used instead of
`macro == :has_many`.
Merge pull request #15597 from eileencodes/reuse-available-collection-methods

reuse available collection? check instead of macro
Use HasAndBelongsToMany instead of HABTM
Merge pull request #15599 from arthurnn/HABTMAssociation

Use HasAndBelongsToMany instead of HABTM
[ci skip] Add note about type modifiers that cannot be specified in command line.
Merge pull request #15602 from JuanitoFatas/doc/type-modifier

[ci skip] Add note about type modifiers that cannot be specified in command line.
ActiveRecord::FinderMethods.find passes proc parameter #15382
Merge pull request #15584 from jamesyang124/issue_15382

ActiveRecord::FinderMethods.find doesn't pass proc parameter to array

Manual merge of #15584.

Closes #15584.
remove depricated Validatior#setup
[ci skip] Rename: Rails Database Migration to Active Record Migration.

This will need to setup permanent redirect for the old guide.
Merge pull request #15604 from JuanitoFatas/doc/migration

[ci skip] Rename: Rails Database Migration to Active Record Migration.
If a counter_cache exists, use it for #empty?
docs, refactor docs about column modifiers. [ci skip] [Matthew Draper & Yves Senn]

This is a follow up to #15602 which rendered the guides in a weird state:

  >  You can also specify some options just after the field type between curly
     braces. You can use the following modifiers:

  >  `null`         Allows or disallows `NULL` values in the column.

  >  NOTE: `null` and `default` cannot be specified via command line.

The modifiers are now moved into a separate section. The generator
simply referes to that section.

Related to #15583.

/cc @JuanitoFatas
test, fix typo, `create_index` does not exist.
Fix cache_digest rake tasks

Bring cache_digests:* rake tasks up-to-date with the API changes introduced in
637bb726cac60aaa1f7e482836458aa73e17fbb7
Inline PG array type casting helper
Merge pull request #15607 from sgrif/sg-array-type-cast

Inline PG array type casting helper
Merge pull request #15605 from mekishizufu/fix_cache_digests_rake_tasks

Fix cache_digest rake tasks