Removing the app root already happens by default, in a more correct manner.
Fixes the following type of backtraces:
app/decoratorslication_decorator.rb:1:in `<main>'
=>
app/decorators/application_decorator.rb:1:in `<main>'
This is only used as a subselect, which means that there is no need to order.
The source metatag uses a non-existant function, remove it.
No need to check for deleted posts, it's desired to show deleted thumbnails
on the post flag index for example.
Also see #439
I was confused about wrap_parameters_by_default. It's actually not relevant
for us since every controller params are wrapped in params.require(:model),
which means that wrapping is forced through that.
wrap_parameters.rb was setting the new default through other means already
though, so even if it's required somewhere there are no functional differences.
* to_s(:format) is deprecated, use to_fs(:format)
* ActiveRecord::Associations::Preloader is gone
* Don't use CurrentUser in config, it's not autoloaded anymore
* Defer elastic initialization to after the module is loaded
The only change is `urlsafe_csrf_tokens`, which is now true.
`cookies_same_site_protection` was specified at another place,
:lax is now the default and can be removed
This makes the environment config understand booleans. If something
ends with "?" it tries to interpret it as a boolean. A bunch of
existing configs where changed to reflect this change.
Rails is VERY opaque about which query timed out when reviewing
backtraces for code that loads relations. Often it becomes difficult
to tell exactly which query was generated.
This interrogates the exceptions for these and pulls out the SQL
and bind params for further debugging. Automatic unwrapping of
rails template exceptions is done, as a majority of these seem
to be triggered in production by relations that are lazily loaded
through templates, or template code.
Also I cleaned up the backtrace display a little bit while I was
messing with this code. Usually it isn't relevant to see the 130
lines of rails relationship loader code. Full traces are still
saved so that in the event something happens inside a gem/framework
file it can still be easily located.