Ignore implied formats for catch all route requests (#1340)
A request to `/test` would show the custom 404 page, but a request to `/test.test` would return a 404 with an empty body. This change ignores the format on incoming catch all route requests, so that the html 404 page is returned on these requests.gh/stable
parent
b1881a3d48
commit
71706f21c2
|
@ -194,5 +194,8 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
root 'home#index'
|
root 'home#index'
|
||||||
|
|
||||||
match '*unmatched_route', via: :all, to: 'application#raise_not_found'
|
match '*unmatched_route',
|
||||||
|
via: :all,
|
||||||
|
to: 'application#raise_not_found',
|
||||||
|
format: false
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
require "rails_helper"
|
||||||
|
|
||||||
|
describe "The catch all route" do
|
||||||
|
describe "with a simple value" do
|
||||||
|
it "returns a 404 page as html" do
|
||||||
|
get "/test"
|
||||||
|
|
||||||
|
expect(response.status).to eq 404
|
||||||
|
expect(response.content_type).to eq "text/html"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "with an implied format" do
|
||||||
|
it "returns a 404 page as html" do
|
||||||
|
get "/test.test"
|
||||||
|
|
||||||
|
expect(response.status).to eq 404
|
||||||
|
expect(response.content_type).to eq "text/html"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue