- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Ruby 中的命令 rake
和 rails
有什么区别?
哪个更快,为什么?
最佳答案
区别在于调用的是什么二进制文件。
如果您要在 Rails 应用程序根目录中调用 bundle exec which rake
,您会得到类似 /home/[USERNAME]/.rbenv/versions/2.5.5 的内容/bin/rake
和 bundle exec which rails
,你会得到 /home/[USERNAME]/.rbenv/versions/2.5.5/bin/rails
。从那里你可以 cat
(cat/home/[USERNAME]/.rbenv/versions/2.5.5/bin/rake
) 这两个路径并查看类似的代码为每个运行,但文件的末尾不同。
rails
gem "railties", version
load Gem.bin_path("railties", "rails", version)
rake
gem "rake", version
load Gem.bin_path("rake", "rake", version)
这里他们都在 Gem.bin_path
上调用 load
但使用不同的参数,它们试图加载单独的 gem。您可以通过运行进一步跟踪代码一个 irb/pry/rails 控制台,并设置所需的 require 'rubygems'
和 version = ">= 0.a"
,然后运行 Gem.bin_path ("railties", "rails", version)
和 Gem.bin_path("rake", "rake", version)
查看 load
是什么实际上试图运行。我承认,在您遇到最终确定传递给 rails
的 rake 任务参数并将其代理到 Rake 并停在那里并推迟的逻辑之前,我承认它会变成一个兔子洞至 this SO answer剩下的。
当 rails
运行并传递了本应由 rake
运行的参数时,它将首先尝试查找它是否是要提供给的实际参数rails
命令,确定它不是,然后尝试将其作为 rake
命令运行,以简化 Rails 团队在 Rails v4 中添加的整体命名。
那么哪个跑得更快? rake
用于实际的 rake 任务,因为它会绕过需要确定正在传递 rake
参数的额外逻辑。但 rails
特定参数也不能与 rake
一起运行,例如bundle exec rake generate
将不起作用(除非您有一个 generate
任务)。如果有疑问,运行 bundle exec rails --help
至少在 Rails v5 中,它会输出哪些参数是 rails
特定的,哪些是 rake
具体。
关于ruby-on-rails - rails 和 rake 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66311919/
我已经为精炼厂安装了一个博客引擎,它运行良好。 现在我生成了一些表字段更改的迁移(当然不是精炼厂或博客表),但我收到一个错误: == CreateBlogStructure: migrating ==
设置如下: 新建 Rails 应用程序,然后将此 test_rake.rake 放入 lib/tasks 中: task :testclass do HelloClass.hello end` 将
我觉得调用 bundle exec rake 或 bundle exec make 很奇怪:为什么不呢 bundle exec bundle exec rake 然后呢? 虽然我应该能够从 Rakef
我试图更好地了解 rake作品。我在 rake 网站上查看过它是如何工作的,但没有明确解释 rake搜索 Rakefiles 以及它在解决依赖项时所经历的步骤。有人能解释一下如何rake作品? 最佳答
我有一个构建系统,它由几个带有项目的子目录组成,其中每个子目录都有一个单独的 rakiefile(或几个 rakefiles)。没有顶级目录有一个 rakefile,它遍历所有子目录并通过以下方式调用
我想运行一个要求用户输入的 Rake 任务。 我知道我可以在命令行上提供输入,但我想询问用户是否确定他们想要继续执行特定操作,以防他们错误输入所提供的值之一到 Rake 任务。 最佳答案 像这样的东西
我在 this question 中遇到了相同的 heroku rake 问题(据我所知已解决) . 当我尝试修复(包括 require 'rake/dsl_definition' 上面的 requi
如何编写将捆绑安装然后 rake db:migrate 然后 rake db:seed 的 rake 任务。 namespace 'install' do 'bundle install' '
这可能是一种“插上电源了吗?”问题,但是在获得 Ubuntu 11.04 的默认 Rackspace 镜像之后。运行命令(以 root 身份) apt-get 安装 rake 因错误而失败 Readi
花了一些时间没有在 Rails 上编程,现在我“回来了”,事情出了问题。 我安装了 ruby 1.9.2-p0 并坚持使用 rails 3.0.1.Updated 所有 gems 和 bundle
我在让 dotCover 在 Albacore 中工作时遇到一些问题 exec使用相对路径的任务。 @xUnitRunnerPath = Pathname.new('../../Tools/xUnit
我正在尝试执行“rake db:migrate”,它给了我这个错误。 Andy:AcademyAir Andy$ rake db:migrate /Users/Andy/.rvm/gems/ruby-
我的 .bashrc 中有以下命令: alias mfigpdf='for FIG in *.fig; do fig2dev -L pdftex "$FIG" "${FIG%.*}.pdftex";
我希望能够发出命令 rake test:qunit并运行我们的 qunit 测试。这可能吗?可以在不打开浏览器窗口的情况下完成吗? 最佳答案 您可以将 PhantomJS 集成到 rake 中。 Ph
我不是一个 ruby 人,我正在使用 Ember.js 开发一个项目,我正在使用 Rake 管道来编译我的脚本。 # AssetFile $: true concat 'templates.
嗨,我正在做一些编码并试图 rake routes 这个错误信息出来了,我不知道该怎么办 rake aborted! Gem::LoadError: You have already activate
你好,我正在开发一个 rails 应用程序,每次我尝试运行任何 rake 命令时,我都会收到此错误 /usr/local/bin/rake:22:in load': cannot load such
我打电话 bundle exec cap staging demo:foo . demo:foo Cap 任务调用 Rake 任务,打印出 Rails.env . 但是...... Rails 任务正
相关的 travis-ci 构建位于: http://travis-ci.org/#!/NZOI/nztrain/builds/2046207 此时 db:migrate 或 db:test:prep
为什么我收到这个 Rake 错误: $ rake --version /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/
我是一名优秀的程序员,十分优秀!