3

我试图掌握一些任务背后的逻辑是“rails”,而其他的,大多数,被发现是 rake 任务。为什么rails server而不是rake server例如?

我可以理解,在 rake 中无法进行引导:毕竟,在开始使用 rake 之前,您首先需要一个rakefile和其他要求。因此,使用二进制文件创建项目rails似乎只是实用的。

但是为什么generate, server,console却不是migrateor assets?我看不出逻辑。有没有?

4

2 回答 2

2

IMOrails脚本用于“实时”控制台使用,例如在开发期间。

这些rake任务是更“自动化”的任务,例如,可能作为构建或部署周期的一部分运行,例如由 CI 服务器运行。一些 rake 任务可能会将 rails/etc 分组。命令一起(如测试)。

于 2012-05-30T21:06:24.713 回答
1

脚本是开发时一些常见任务的rake实用程序/构建工具。例如,您需要进行部署、运行测试、数据库内容、截断日志文件、编译资产……您可以创建自己的自定义 rake 脚本。

rails脚本是用于 gem 的位于 script 目录下的 ruby​​ 文件rails。这就是宝石的作用。Rails 是一个 ruby​​ Web 框架,因此该命令rails用于启动rails应用程序,转到rails控制台,generate文件。它在您安装 gem 时捆绑在一起。

您可以将rails命令bundle视为捆绑程序的命令。bundle install, bundle update...都与解决gem依赖有关。rspec运行测试的命令...

有些 gem 有一个可执行脚本,例如rails, bundler, capistrano, whenever, rspec。其他一些宝石没有,例如builderwill_paginate....

您可以查看如何将可执行文件添加到 gem,http ://guides.rubygems.org/make-your-own-gem/#adding-an-executable

于 2012-05-30T15:03:58.757 回答