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.
Improve a bit the 4.1 release notes [ci skip]

Fix a few typos. #present_in has been changed to #presence_in through
commit d61baee5.
[ci skip] correct select examples and doc, ref [522c0fd]
Merge pull request #14230 from kuldeepaggarwal/doc-select

Correct `select` examples and doc, ref [522c0fd] [ci skip]
Improve collision explanation for Hash#transform_keys.

Based on comments at
https://github.com/rails/docrails/commit/42417b0013819e573be9ffc5402e179003156e8e#commitcomment-5527251

[skip ci]
set the error callback to a nice default in case nobody set an error callback and an error happens
[ci skip] use secrets.secret_key_base instead of config.secret_key_base
use secrets.yml instead of secret_token.rb
Merge pull request #14233 from kuldeepaggarwal/fix-secrets-doc

use `secrets.secret_key_base` instead of `config.secret_key_base`
Remove unnecessary db call when replacing.

When replacing a has_many association with the same one, there is no
need to do a round-trip to the db to create/and drop a new transaction.

[fixes #14220]
live controllers should have live responses

detect the type of controller we're testing and return the right type of
response based on that controller.  This allows us to stop doing the
weird sleep thing.
use built-in exception handling in live controllers

when an exception happens in an action before the response has been
committed, then we should re-raise the exception in the main thread.
This lets us reuse the existing exception handling.
Merge pull request #14195 from robin850/issue-14079

Avoid namespacing routes inside engines
make sure we wait for the threads to shut down before asserting closure
Replace map.flatten(1) with flat_map