为何`rails destroy controller`命令不自动删除生成的路由?
Rails控制器销毁命令不自动删除路由的原因
路由文件是核心手动配置项:
routes.rb是Rails管理所有路由规则的核心文件,开发者常会在这里自定义路由、调整规则。生成控制器时自动添加路由是为新手提供便利,但销毁时不敢自动删除——谁能保证你之后没修改过这条路由,或是在它旁边添加了其他相关路由?自动删除极易破坏配置,所以Rails设计时刻意避开了自动修改这个文件。仅scaffold生成的路由会自动清理:如果是用
rails generate scaffold生成的完整CRUD资源,执行rails destroy scaffold时会自动删除对应的资源路由,因为scaffold的路由是标准化的,Rails能精准识别。但普通generate controller生成的单条路由,无法确保未被修改,因此不会自动处理。确实需要手动删除:像你例子里的
get 'articles/index'这类单路由,只能自行打开routes.rb删掉对应行。这是Rails为保证路由配置灵活性和安全性做出的权衡选择。
内容的提问来源于stack exchange,提问作者Sammyul Haque
相关产品推荐
相关产品推荐

