私のpages_controller.rb
ファイルにはnot_found
アクションがあります。routes.rb
に移動するファイルのエントリと一致しないルートが必要pages#not_found
です。ワイルドカードを利用したいので、これをroutes.rbファイルの最後の行にしました。
match '*' => 'pages#not_found'
これは、ルーティング用のrubyガイド(http://guides.rubyonrails.org/v3.1.0/routing.html)でワイルドカードについて読んだ内容に基づいています。しかし、それは機能していません。に行く代わりにpages#not_found
、次のようになりますAcctionController::RoutingError (No route matches [GET] "*"
(残念ながら、ActionDispatchによってキャッチされるため、例外を処理する方法がありません)。
トラブルシューティング、これをroutes.rbファイルに入れました:
match 'foobar' => 'pages#not_found'
not_foundアクションはhttp://localhost:3000/foobar
期待どおりに実行されました。部分的なワイルドカードを試しました:
match 'foo*' => 'pages#not_found'
Railsガイドによると、これはhttp:// localhost:3000 / foobarと一致するはずですが、一致しません。ルートでワイルドカードを機能させるために必要な特別なことはありますか?私は何が欠けていますか?