我的引擎位于
apps/my_engine
如何运行当前位于apps/my_engine/lib/tasks
?
当我尝试运行它时,我得到一个“不知道如何构建任务”错误。
这就是我的Rakefile在引擎中的样子:
begin
require 'bundler/setup'
rescue LoadError
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
end
require 'rdoc/task'
RDoc::Task.new(:rdoc) do |rdoc|
rdoc.rdoc_dir = 'rdoc'
rdoc.title = 'GoalSaver'
rdoc.options << '--line-numbers'
rdoc.rdoc_files.include('README.rdoc')
rdoc.rdoc_files.include('lib/**/*.rb')
end
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
load 'rails/tasks/engine.rake'
Bundler::GemHelper.install_tasks
require 'rake/testtask'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.libs << 'test'
t.pattern = 'test/**/*_test.rb'
t.verbose = false
end
task default: :test
答案 0 :(得分:0)
如果我理解正确,您正尝试使用引擎的rake任务扩展主应用程序。是的,有可能。只需在apps/my_engine/lib/tasks
中定义您的任务,只留下引擎的Rakefile。前者未加载到主应用程序的上下文中。
一个例子:
# apps/my_engine/lib/tasks/admin.rb
namespace :'admin-ui' do
desc 'reload it!'
task :reload do
warn 'reloading!'
end
end
# apps/my_engine/Rakefile
require "bundler/gem_tasks"