add #no_touching on ActiveRecord models
Merge pull request #12772 from dmathieu/no_touching

Add No Touching
Make it clear that require 'active_support' is required [ci-skip]
Merge pull request #12874 from chancancode/better_as_loading_guides

Make it clear that require 'active_support' is required [ci-skip]
Fix AR:B.where(belongs_to_assoc: nil) which generated invalid SQL

When referring to a belongs_to association in a query, nil values
would cause the PredicateBuilder to skip over the part that expanded
the association name into the foreign key.

For example:

    Post.where(author: nil)

This should return posts where the author is not set, but instead
it generates an invalid SQL statement using the association name.

    # Invalid SQL generated previousl
    SELECT "posts".* FROM "posts" WHERE "posts"."author" IS NULL

This fix removes the requirement that the association value is an
ActiveRecord::Base object when converting the association name to its
respective foreign key.

    # New valid SQL returning the expected result.
    SELECT "posts".* FROM "posts" WHERE "posts"."author_id" IS NULL