在我的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'
按预期在http://localhost:3000/foobar
上执行了not_found操作。我尝试了部分外卡:
match 'foo*' => 'pages#not_found'
根据Rails指南,这应与http://localhost:3000/foobar匹配,但事实并非如此。为了让通配符在路由中工作,您需要做些什么特别的事情吗?我错过了什么?
答案 0 :(得分:4)
也许试试这个:
match '*path' => 'pages#not_found'