$ the-wire · showcase
Dynamic controller/action routes removed, JSON escaping rewritten
By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology
Rails deleted the dynamic controller and action routing mechanism deprecated since 5.0, and swapped JSON string escaping onto a single-pass String#tr! path.
Remove support for dynamic controller/action in routes rails/rails
A route like get ":controller(/:action(/:id))" now raises ArgumentError, and the same mechanism backed controller-class-only routes such as get "show", to: [Source], so both must be rewritten as explicit "photos#index"-style pairs. Aaron Patterson notes it "has been deprecated since Rails 5.0, so it's time to go."
Escape JSON with String#tr! rails/rails
Both JSON encoders now escape with String#tr! instead of a regexp round-trip, which substitutes in one pass over the UTF-8 string; because tr! raises on invalid encodings, the fast path is guarded on valid_encoding? and falls back to gsub!. JSONGemCoderEncoder is the one installed by default whenever JSON::Coder is available, though tr! rebuilds its translation table on every call.
add a warning about missing controllers on boot + eager load rails/rails
A warning now surfaces missing controllers at boot and eager load rather than letting them fail later at request time.
Action items