Add class level case operator support for error dispatching in Rescuable
Add test for `:skip_after_callbacks_if_terminated`

`define_callbacks` from `ActiveSupport::Callbacks` accepts the
`:skip_after_callbacks_if_terminated` option since #4866 but the option
is not tested anywhere.

This commit adds tests and fixes documentation for the option, making it clear
that halting a callback chain only stops following `before_` and `around_`
callbacks by default.
Add AM test for after_validation returning false

This stems from https://github.com/rails/rails/pull/17227#discussion_r21641358

It's simply a clarification of the current behavior by which if an
`after_validation` ActiveModel callback returns +false+, then further
`after_` callbacks **are not halted**.
Add AM test: after/around callback returning false

This stems from https://github.com/rails/rails/pull/17227#discussion_r21641358

It's simply a clarification of the current behavior by which if an
`after_` or `around_` ActiveModel callback returns +false+, then the callback
chain **is not halted**.

The callback chain in ActiveModel is only halted when a `before_`
callback returns `false`.
Add a code checking about file or not to the rails db command
allow reseting of request variants

The current implementation of `variants=` don't allow a resetting to nil, wich is the default value.

This results in the following code smell:
```ruby
case request.user_agent
when /iPhone/
  request.variants = :phone
when /iPad/
  request.variants = :ipad
end
```

With the ability to reset variants to nil, it could be:
```ruby
request.variants = case request.user_agent
when /iPhone/
  :phone
when /iPad/
  :ipad
end
```
Test to ensure content_tag works when fixing #17661

After c2fe093, which was reverted yesterday, there will likely be
future PRs to address #17661.

The test `actionview/test/template/capture_helper_test.rb
#test_capture_returns_nil_if_the_returned_value_is_not_a_string` should
have errored with c2fe093, but it was rewritten in the PR to not raise.
My guess is that it may have seemed irrelevant to the content_tag tests
or already covered by them.

This test provides additional protection by being in the content_tag
test suite to explicitly raise a red flag in future cases. It foregoes
some redundancy for safety — at least until #17661 is closed.
Merge pull request #18031 from claudiob/better-tests-for-callbacks-terminator

Add test for `:skip_after_callbacks_if_terminated`
Merge pull request #18054 from jonatack/add_content_tag_test

Test to ensure content_tag works when fixing #17661
Merge pull request #18032 from claudiob/add-test-for-after-validate-callbacks

Add test for ActiveModel `after_validation`, `after_` and `around_` callbacks returning false
Merge pull request #18052 from timoschilling/reset_variants

allow reseting of request variants
Merge pull request #18049 from yuki3738/fix_rails_db_command_error

Add a code checking about file or not to the rails db command
"backoffice" -> "back office", "lookup" -> "look up"

"Lookup" is a noun, but not a verb. The verb is "look up".

[skip ci]
adding that assert_template with :layout will raise ArgumentError for unknown layout type
Merge pull request #18055 from jonatack/patch-8

"backoffice" -> "back office", "lookup" -> "look up" [ci skip]
Merge pull request #17995 from jethroo/fix/assert_template_with_unsupported_layout_type

assert template should raise ArgumentError for unsupported layout types
Improving Method Chaining section [ci skip]
Merge pull request #18059 from andreynering/ar-guides-querying

Improving Method Chaining section [ci skip]
Merge pull request #17980 from gsamokovarov/rescuable-case-operator

Add class level case operator support for error dispatching in Rescuable
`update_column` take ruby-land input, not database-land input

In the case of serialized columns, we would expect the unserialized
value as input, not the serialized value. The original issue which made
this distinction, #14163, introduced a bug. If you passed serialized
input to the method, it would double serialize when it was sent to the
database. You would see the wrong input upon reloading, or get an error
if you had a specific type on the serialized column.

To put it another way, `update_column` is a special case of
`update_all`, which would take `['a']` and not `['a'].to_yaml`, but you
would not pass data from `params` to it.

Fixes #18037