我正在使用Jeweller为Rails 3创建一个gem。gem包含一个rake任务,它所做的一件事就是擦除db,所以我使用的是“数据库清理器”。
我在指定gem的gem文件中的gem依赖关系
gem 'database_cleaner'
在拉克尔河
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
然后在lib中,我创建了我的gem.rb和tasks.rake文件。如下所示,我的“gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
和Task.Rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
我安装了gem(sudo rake install),创建了一个空的rails项目,并在rails的gemspec中添加了gem依赖项。(
gem 'my_gem'
)但当我试图逃跑时
rake my_task
我得到错误
uninitialized constant DatabaseCleaner
.
我也尝试过添加
require 'database_cleaner'
从任务内部引发错误
no such file to load -- database_cleaner
和
gem 'database_cleaner'
这引发了错误
database_cleaner is not part of the bundle. Add it to Gemfile.
.
有没有办法不用加
gem“数据库清洗器”
去铁路项目的gemspec?
谢谢
更新(添加到源代码的链接):
https://github.com/jordinl/dummy_tasks