我试图掌握一些任务“轨道”背后的逻辑,而其他人(大多数)被认为是耙子任务。为什么rails server
而不是rake server
?
我可以理解,无法在rake中完成引导:毕竟,在开始使用rake之前,首先需要 rakefile 和其他要求。因此,使用rails
二进制文件创建项目似乎只是实用的。
但为什么generate
,server
,console
,而不是migrate
或assets
呢?我没有看到逻辑。有没有?
答案 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 install
,bundle update
...都与解析gem依赖关系有关。用于运行测试的rspec
命令...
有些宝石有可执行的脚本,例如rails
,bundler
,capistrano
,whenever
,rspec
。其他一些宝石没有builder
,will_paginate
....
您可以查看如何将可执行文件添加到gem http://guides.rubygems.org/make-your-own-gem/#adding-an-executable