Remove custom errors page section from the guides

This pattern is too problematic and introduces a lot of edge cases:

  * On 4.2, the issue https://github.com/rails/rails/issues/15124 is
    back again.
  * needs to define each action for each http status otherwise the
    router raises ActionController::RoutingError (No route matches).
  * If the router has `match "/*username",...` and some action is
    missing, Rails will pick up the "match" and try to do its job.
  * encourages people to copy & paste programming. Not DRY.

[ci skip]
fixing mailer previews for apps with globbing route
Make error message clearer that :on requires a symbol, not a string

The validation added in 5a3dc8092d19c816b0b1203945639cb91d065847 will
reject values for the `:on` option for after_commit and after_rollback
callbacks that are string values like `"create"`.

However, the error message says ":on conditions for after_commit and
after_rollback callbacks have to be one of create,destroy,update". That
looks like a string value *would* be valid.

This commit changes the error message to say ":on conditions for
after_commit and after_rollback callbacks have to be one of [:create,
:destroy, :update]", making it clearer that symbols are required.
add brackets around attribute_name

since 'attr_name_will_change!' is not an actual method it should
be clearer that you have to insert the attribute name as in line 104

[ci skip]
Merge pull request #17969 from tiii/add-brackets-around-attribute_name

add brackets around attribute_name [ci skip]
Merge pull request #17896 from GBH/globbing_route_mailer_preview

fixing mailer previews for apps with globbing route
Merge pull request #17964 from carols10cents/improve-after-commit-argumenterror-message

Make error message clearer that :on requires a symbol, not a string
Only check that it is a Rails application once

Also avoid using try since is_a? is faster for this case.
Revert to 4.1 behavior for casting PG arrays

The user is able to pass PG string literals in 4.1, and have it
converted to an array. This is also possible in 4.2, but it would remain
in string form until saving and reloading, which breaks our
`attr = save.reload.attr` contract. I think we should deprecate this in
5.0, and only allow array input from user sources. However, this
currently constitutes a breaking change to public API that did not go
through a deprecation cycle.
Don't error when `attributes` is called on a frozen AR model

`freeze` will ultimately end up freezing the `AttributeSet`, which in
turn freezes its `@attributes` hash. However, we actually insert a
special object to lazily instantiate the values of the hash on demand.
When it does need to actually instantiate all of them for iteration (the
only case is `ActiveRecord::Base#attributes`, which calls
`AttributeSet#to_h`), it will set an instance variable as a performance
optimization

Since it's just an optimization for subsequent calls, and that method
being called at all is a very uncommon case, we can just leave the ivar
alone if we're frozen, as opposed to coming up with some overly
complicated mechanism for freezing which allows us to continue to modify
ourselves.

Fixes #17960
Add foreign_type option for polymorphic has_one and has_many.

To be possible to use a custom column name to save/read the polymorphic
associated type in a has_many or has_one polymorphic association, now users
can use the option :foreign_type to inform in what column the associated object
type will be saved.
Remove unused "Developer" fixtures from tests

The `RecursiveCallbackDeveloper` and `ImmutableMethodDeveloper` classes
are not used anymore in tests, and neither is the `@cancelled` variable.
Allow custom handling of non-standard types in `time_zone_conversion`

PostgreSQL for example, allows infinity as a valid value for date time
columns. The PG type has explicit handling for that case. However, time
zone conversion will end up trampling that handling. Unfortunately, we
can't call super and then convert time zones.

However, if we get back nil from `.in_time_zone`, it's something we
didn't expect so we can let the superclass handle it.

Fixes #17971
Update test case for TZ aware attributes

The test added in 42418cfc94d1356d35d28d786f63e7fab9406ad6 wasn't
actually testing anything, since the bug was with TZ aware attributes
only.
[ci skip] Fix typo
Merge pull request #17977 from yui-knk/fix/typo

[ci skip] Fix typo
Merge pull request #17972 from claudiob/remove-unused-callback-fixtures

Remove unused "Developer" fixtures from tests
Unused csv fixture file
Fix options overwritten by super
Merge pull request #17975 from merongivian/add_test_for_search_field

Fix options overwritten by super