Do not try to write timestamps if they are missing #8813
add I18n support for `:placeholder` HTML option is passed to form fields
Fix assert_template for files.

The test was not failing for `assert_template file: nil` when a file
has been rendered.
[ci skip] add note about the ERB escape in generator docs
Merge pull request #16408 from aditya-kapoor/add-doc-ERB-escape

[ci skip] add note about the ERB escape in generator docs
UnexpectedErrors may reference exceptions that can't be dumped

UnexpectedError exceptions wrap the original exception, and the original
exception may contain a reference to something that can't be marshal
dumped which will cause the process to die.
this should be accessing the hash, not calling a method
fewer operations on the options hash

since we pass `as` down, then we won't have to do an insert / delete
dance with the options hash
pass consistent parameters to canonical_action?

now we only have to look up @scope[:scope_level] once per call to
canonical_action? and we don't have a variable named "flag"
only test `prefix` once

we don't need to repeat if statements
only look up scope level once

avoid hash lookups and remove depency on the instance
Finally! None of our tests are order_dependent!
move scope_level to a method on the scope object

now we don't have to have a hard coded key
move the scope level key fully inside the scope object
scope_level is no longer a hash key, just use the ivar
change to attr_reader
reduce calls to scope_level

this will help us to encapsulate magical symbols so hopefully we can
eliminate hardcoded magic symbols
ask the scope for the action name
ask the scope object if it is a resource_method_scope
Merge pull request #16027 from tgxworld/template_assertions

Fixes to ActionController::TemplateAssertions