add include_hidden option to collection_check_boxes helper
Save has_one associations only if record has changes

Prevents save related callbacks such as `after_commit` being
triggered when `has_one` objects are already persisted and have no
changes.
Only use BINARY for mysql case sensitive uniqueness check when column has a case insensitive collation.
typos fixes
Tweak Configuring Guide language

the fact that Rails is multi-thread by default is not very relevant. see https://github.com/rails/rails/pull/13998 [ci skip]
:scissors:

This commit also addresses rails/docrails#169 and rails/rails#14159
Avoid namespacing routes inside engines

Since #11544, invoking the controller generator, any generated route is
namespaced according to the class_path method. Since a mountable plugin
is namespaced, creating a controller inside would generate a namespaced
route based on the engine's name.

The controller generator now relies on regular_class_path which does not
contain the class hierarchy but the given path.

Fixes #14079.
Return a hash rather than array from fetch_multi

The current implementation of `fetch_multi` returns an array and has no
means to easily backtrack which names yielded which results. By changing
the return value to a Hash we retain the name information. Hash#values
can be used on the response if only the values are needed.
Merge pull request #11481 from sorentwo/fetch-multi-hash

Cache#fetch_multi returns a Hash instead of an Array
Replace "data store" with database [ci skip]

Active Record is specifically for databases. Refs #12101.
modify model generator warning message. refs [#174c9f0]
Merge pull request #14174 from kuldeepaggarwal/fix-resource_generator_test

fix test cases
Fix a bug affecting validations of enum attributes

This fixes a bug where any enum attribute of a model
would be evaluated always as 0 when calling the
database on validations.

This fix converts the value of the enum attribute
to its integer value rather than the string before
building the relation as the bug occured when the
string finally gets converted to integer using
string.to_i which converts it to 0.

[Vilius Luneckas, Ahmed AbouElhamayed]
Merge pull request #14203 from Alwahsh/aabouelhamayed

Fix a bug affecting validations of enum attributes
Improve guide for Hash#transform_keys and related methods.

[skip ci]
Fix code alignment in duplicable? guide.

[skip ci]
[ci skip] use secrets.yml instead of secret_token.rb in the action controller guide
`includes` uses SQL parsing when String joins are involved.

This is a partial revert of 22b3481ba2aa55fad1f9a5db94072312b345fb55.
The current implementation of `references_eager_loaded_tables?` needs to know
every table involved in the query. With the current API this is not possible
without SQL parsing.

While a2dab46cae35a06fd5c5500037177492a047c252 deprecated SQL parsing for `includes`.
It did not issue deprecation warnings when String joins are involved. This resulted
in a breaking change after the deprecated behavior was removed (22b3481ba2aa55fad1f9a5db94072312b345fb55).

We will need to rethink the usage of `includes`, `preload` and `eager_load` but for now,
this brings back the old *working* behavior.
Merge pull request #14231 from brianstorti/bs-docs-secret-token

Use secrets.yml instead of secret_token.rb in the docs
Merge pull request #14226 from senny/14109_partial_revert

`includes` uses SQL parsing when String joins are involved.