【发布时间】:2017-11-30 01:31:54
【问题描述】:
-
rails routes和rake routes有什么区别吗? - 如果它们相同,为什么有两种方式?
- 添加
bundle exec重要吗?
【问题讨论】:
标签: ruby-on-rails routes
rails routes和rake routes有什么区别吗?bundle exec 重要吗?【问题讨论】:
标签: ruby-on-rails routes
rake routes 和 rails routes 等效地显示应用程序中的所有路由。
在 Rails >= 5 中,您可以同时使用 rails routes 和 rake routes(以前的首选),但在 Rails rake routes。
Rails 核心团队决定通过启用 rails command 来支持 rake 所做的一切来保持一致性。
例如,在 Rails 5 中,作为 Rails 4 中 rake 命令一部分的 db:migrate、setup、test 等命令现在由 rails 命令支持。但是,您仍然可以选择使用 rake 来运行这些命令,类似于它们在 Rails 4 中的运行方式。这是因为 Rails 社区已经引入了 Rake Proxy,而不是将命令选项从 rake 完全移动到 rails。
内部发生的是,当 rails db:migrate 命令执行时,Rails 会检查 db:migrate 是否是 rails 原生支持的东西。在这种情况下,rails 本身不支持 db:migrate,因此 Rails 通过 Rake Proxy 将执行委托给 Rake。
如果您想查看 Rails 5 中的 rails 支持的所有命令,则可以通过执行 rails --help 获得一长串选项。
【讨论】:
rake 比 rails 快大约 10 倍,但我不知道为什么。