Fix bugs with changed attributes tracking when transaction gets rollback
Fix Hash#deep_merge bug and improve documentation — resolves #12738

Previously merging into a hash with a falsy value would not result in
the merge-block being called. The fix is simply to check for presence
of the key in the hash.

The documentation example for `deep_merge` now appropriately
demonstrates what a deep merge does.
rename `str` to `string` to fix overshadowing of variable
Follow-up to #14990 [ci skip]

Rewrite to avoid 'we'/'you', add missing period, and keep lines at 80 chars. Cheers :)

Improve readability with help from @senny

[ci skip]
Merge pull request #14993 from jonatack/patch-7

Follow-up to #14990 [ci skip]
Merge pull request #15007 from vipulnsward/fix-scrubber-overshadow

rename var to fix overshadowing of variable
Fix state leaks in actionmailer/test/base_test.rb.
Merge pull request #14964 from zuhao/refactor_actionmailer_tests

WIP: Make ActionMailer tests order-independent.
fixed typos in active_record basics [skip ci]
Merge pull request #15002 from vanderhoop/master

typo fixes in active_record_basics.md [skip ci]
test, persist inherited class with different table name. Refs #14971.

This case prevents against regressions. The change was suggested in a recent
PR but the all our tests passed.
add tests for symbols passed to polymorphic_url
HTTP::Headers#key? correctly converts


Previously if you were looking for a given key, the header may incorrectly tell you that it did not exist even though it would return a valid value:

```ruby
env     = { "CONTENT_TYPE" => "text/plain" }
headers = ActionDispatch::Http::Headers.new(env)
headers["Content-Type"] 
# => "text/plain"

headers.key?("Content-Type")
# => false
```

This PR fixes that behavior by converting the key before checking for presence
test for inconsistency between String and Symbol url_for handling
Merge pull request #15012 from schneems/schneems/headers-key

HTTP::Headers#key? correctly converts
Merge pull request #13166 from bogdan/transaction-magic

[Regression 3.2 -> 4.0] Fix bugs with changed attributes tracking when transaction gets rollback
Keep track of dirty attrs after after rollback.

[related #13166]
Merge branch 'rm-trasaction-fix-13166'
Merge pull request #12746 from coreyward/master

Fix Hash#deep_merge bug and improve documentation — resolves #12738
Return a non zero code when db has never been setup on status