我正在尝试将我的应用从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任务,因此我仍然应该覆盖它。
答案 0 :(得分:2)
我能够通过添加
来解决这个问题require 'rails/tasks'
到我的rake文件的顶部。所以我的完整rake文件现在看起来像这样:
require 'rdoc/task'
require 'rails/tasks'
Rake::Task["doc:app"].clear
namespace :doc do
RDoc::Task.new('app') do |rdoc|
...
end
end