我正在使用珠宝商为Rails 3创建一块宝石。宝石包含一个耙子任务,它所做的一件事是擦拭数据库,所以我使用'database_cleaner' 。在宝石的耙子任务中需要一块宝石
我指定的创业板公司的Gemfile
gem 'database_cleaner'
内部和Rake文件
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
然后里面的lib我创建的文件my_gem.rb和tasks.rake宝石依赖。具体如下,my_gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
而且tasks.rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
我安装了宝石(须藤耙安装),创建了一个空轨项目,并在轨道添加的宝石依赖Gemspec(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 'database_cleaner'
添加到rails项目的Gemspec?
感谢
UPDATE(添加链接到源代码): https://github.com/jordinl/dummy_tasks
您可以从gem发布mygem.gemspec并从空发布Gemfile.lock rails应用程序? – johnmcaliley 2010-11-15 19:02:50
嘿!我已添加链接到github回购。谢谢! – jordinl 2010-11-15 19:10:08