Rake与“rails”之下的任务背后的逻辑是什么

时间:2012-05-30 11:50:54

标签: ruby-on-rails rake

我试图掌握一些任务“轨道”背后的逻辑,而其他人(大多数)被认为是耙子任务。为什么rails server而不是rake server

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

但为什么generateserverconsole,而不是migrateassets呢?我没有看到逻辑。有没有?

2 个答案:

答案 0 :(得分:2)

IMO rails脚本用于“实时”控制台使用,就像开发期间一样。

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

答案 1 :(得分:1)

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

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

您可以为Bundler考虑rails命令,如bundle命令。 bundle installbundle update ...都与解析gem依赖关系有关。用于运行测试的rspec命令...

有些宝石有可执行的脚本,例如railsbundlercapistranowheneverrspec。其他一些宝石没有builderwill_paginate ....

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