Rails删除某些路由

Vas*_*rth 2 routing controls ruby-on-rails

我有一个rails应用程序,我有一些自定义路线.我有一个名为Reports的数据库.在我的routes.rb我有match '/new' => 'reports#new'但问题是,/新去正确的地方,但是/报告/新也仍然有效.有没有办法"停用"标准/报告/新,以便只有/新的工作?

Mar*_*oda 5

当然,有.您可以使用该only选项(例如):

resources :reports, :only => [:create, :edit, :update]
Run Code Online (Sandbox Code Playgroud)

它仅为指定的操作定义路由(运行rake routes以查看所有路由)(因此它不会删除路由,它只是不生成它们)

编辑:另外,当然,还有except选项(也见@Andy Gaskell的答案) - 除了给定的动作之外,它会生成所有路线,请参阅文档.


And*_*ell 5

如果你只对禁用一个动作感兴趣except可能比only.它以类似的方式工作.

... :except => :new

http://guides.rubyonrails.org/routing.html#restricting-the-routes-created