Verify that route constraints respond to the expected messages instead of silently failing to enforce the constraint
Make remote_ip detection properly handle private IPv6 addresses

Fixes #12638.
Refactor AR's validations_test.rb

The `:context` switch feature is implemented in
ActiveRecord::Validations#valid? method, so we should rename the test
names, and execute `valid?` in the test.

Change test name in AR's validations_test.rb

This test is testing save method's code
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.
SQLite3: Always close statements.

SQLite3 adapter must make sure to close statements after queries.

Fixes: #13631
Added a missing `end`
Merge pull request #14890 from fuzzyalej/patch-1

Added a missing `end`
write a new method to be accessed from delete_all

The delete method is very coupled with delete all even
though only a portion of the conditionals apply. Decoupling
this will make the code easier to understand and manipulate.
remove unnecessary code from delete method

Now that we have a new method delete_all_with_dependency this
coupled conditional is no longer needed.
simplify the delete all w/ dependency method

After reviewing this code I realized the conditional that was
there previously was basically saying if the dependency is not
delete all. This is a better, cleaner, and clearer way to write
this method.
Merge pull request #14892 from eileencodes/breakup-complex-conditionals-on-delete

Breakup complex conditionals on delete
[ci skip] updating active_record/associations to demonstrate where conflict with eager loading.
Merge pull request #14139 from anilmaurya/master

[ci skip] updating active_record/associations to demonstrate where conflict with eager loading.
flip conditional in delete_all to handle nullify better

Nullify (or nil dependency) was doing the same thing delete_all
was doing in issue #14546, creating a large IN statement if
the association was loaded. Loaded and not loaded associations
should behave the same. The IN statement is also not great because
it's inefficient.
rewrite test to correctly test clear method

Clear should not call callbacks because it clear calls
delete_all and then returns self. It should behave the same
as delete_all. This test clarifies the goal of the test and
tests the correct outcome.
clear shouldnt fire callbacks so remove order test

Since clear shouldn't fire callbacks the order doesn't
matter since it was never updated. Remove the portion
of this test that tests for order after clear.
add test to check that loaded and non laoded are the same

Test checks that SQL is the same for a loaded vs not loaded
association (category.categorizations, category.categorization.delete_all
vs category.cartegroization.delete_al). This was fixed for delete_all
dependency but was not fixed for no (:nullify, or nil) dependency).
Merge pull request #14899 from eileencodes/fix-delete-all-with-nil-dependency-to-not-produce-in-statement

Fix delete all with nil (:nullify) dependency to not produce in statement
Update the Getting Started tutorial

Update the Getting Started tutorial to clarify where and how to add
controller actions, and fix some grammar.

This PR is an improved version of #14828, #14822 and #14815.

[skip ci]