Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 升级到rails 4后覆盖rake任务失败_Ruby On Rails 4_Rake_Yard - Fatal编程技术网

Ruby on rails 4 升级到rails 4后覆盖rake任务失败

Ruby on rails 4 升级到rails 4后覆盖rake任务失败,ruby-on-rails-4,rake,yard,Ruby On Rails 4,Rake,Yard,我正在尝试将我的应用程序从rails 3.2.18升级到rails 4.0,但rake出现了一个问题 我有一个自定义doc.rake任务,该任务覆盖doc:app,其中包含以下代码,在rails 3上运行良好: # Replace Rails' rake doc:app with ours, which uses yardoc Rake::Task["doc:app"].clear.enhance do # Uses .yardopts_app file in rails roo

我正在尝试将我的应用程序从rails 3.2.18升级到rails 4.0,但rake出现了一个问题

我有一个自定义doc.rake任务,该任务覆盖doc:app,其中包含以下代码,在rails 3上运行良好:

  # Replace Rails' rake doc:app with ours, which uses yardoc
  Rake::Task["doc:app"].clear.enhance do
    # Uses .yardopts_app file in rails root
    app_dir = 'doc/generated/app'
    sh "rm -rf #{app_dir}"
    sh "bundle exec yardoc --plugin rails --yardopts .yardopts_app"
    app_doc_files_dir = "#{app_dir}/doc-files"
    Dir.mkdir( app_doc_files_dir )
    cp_r( 'doc/files/app/doc-files/.', app_doc_files_dir )
  end
升级rails后,我尝试运行的任何rake任务都会失败,并出现以下错误:

rake aborted!
Don't know how to build task 'doc:app'

我真的不知道为什么会这样。我找不到任何关于rails 4删除默认doc:app任务的引用,因此它应该仍然存在,以便我覆盖

我通过添加

require 'rails/tasks'
到我的耙子的顶部。因此,我的完整rake文件现在如下所示:

require 'rdoc/task'
require 'rails/tasks'

Rake::Task["doc:app"].clear

namespace :doc do
  RDoc::Task.new('app') do |rdoc|
    ...
  end
end

我也有同样的问题。奇怪的是,它不是在每台机器上都可以复制的。我的开发机器工作正常,但是我在登台服务器上遇到了这个错误。都运行ruby 2.1.1p76和rails 4.1。