我正在构建两个独立的宝石,使用Railties从每个宝石中引入rake任务。任务在不同的命名空间中,当我在Gemfile中单独引入时,任务显示在rake -T中,但当两个gem都在同一个Gemfile中时,只显示第二个gem的任务。这就好像第二个宝石的任务踩踏了第一个,尽管命名空间。
class AfsTest::Railtie < Rails::Railtie
railtie_name :afs_test
rake_tasks do
load 'tasks/config.rake'
end
end
namespace :afs do
namespace :test do
desc 'Configure afs_test gems'
task :config do
puts 'placeholder'
end
end
end
和
class AfsDevTest::Railtie < Rails::Railtie
railtie_name :afs_dev_test
rake_tasks do
load 'tasks/config.rake'
end
end
namespace :afs do
namespace :dev_test do
desc 'Configure afs_dev_test gems'
task :config do
Rails::Generators.invoke('rspec:install')
end
end
end
(是的,我知道宝石没有做太多 - 这不是重点。关键是一个人踩另一个。)