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.
shrike
Matt Jankowski 2017-04-09 08:39:41 -04:00 committed by Eugen
parent b1881a3d48
commit 71706f21c2
2 changed files with 25 additions and 1 deletions

View File

@ -194,5 +194,8 @@ Rails.application.routes.draw do
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

View File

@ -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