定义返回404的路由的最简单方法

Eli*_*kes 23 routing routes ruby-on-rails http-status-code-404

我需要在Ruby on Rails项目中指定一个命名路由,该项目返回public/404.html页面以及404服务器响应代码.

留空不是一个选项,请不要问为什么,它只是:)它绝对必须是一个命名路由,或map.connect条目会做.

像这样的东西会很棒:

map.my_named_route '/some/route/', :response => '404'

任何人都知道什么是最简单的方法来做这样的事情.我可以创建一个呈现404.html文件的控制器方法,但认为可能有一种更清晰的方法来执行此操作.期待任何回复 - 谢谢,

艾略特

Nev*_*vir 46

您可以路由到出现简单404的机架端点(rails 3):

match 'my/route', to: proc { [404, {}, ['']] }
Run Code Online (Sandbox Code Playgroud)

例如,这对于定义omn​​iauth端点的命名路由特别方便:

match 'auth/:action', to: proc { [404, {}, ['']] }, as: :omniauth_authorize
Run Code Online (Sandbox Code Playgroud)

  • 在Rails 4中使用:to选项,例如`get'/ apple-touch*str',来:proc {[404,{},['']]} (7认同)
  • @mmell那不行,你必须这样做:`get'/:str',to:proc {[404,{},['']]},约束:{str:/apple-touch.*/}` (2认同)