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