1

私の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と一致するはずですが、一致しません。ルートでワイルドカードを機能させるために必要な特別なことはありますか?私は何が欠けていますか?

4

1 に答える 1

4

多分これを試してください:

match '*path' => 'pages#not_found'
于 2012-04-30T08:52:51.873 に答える