Rails删除某些路由

时间:2011-12-26 16:55:24

标签: ruby-on-rails routing controls

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

2 个答案:

答案 0 :(得分:5)

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

resources :reports, :only => [:create, :edit, :update]

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

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

答案 1 :(得分:5)

如果您只对禁用一项操作感兴趣except可能比only更合适。它以类似的方式工作。

... :except => :new

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