Tôi đang sử dụng kim hoàn để tạo đá quý cho Rails 3. Đá quý có chứa một công việc cào và một trong những thứ nó làm là xóa DB, vì vậy tôi đang sử dụng 'database_cleaner' .Yêu cầu một viên đá quý bên trong nhiệm vụ cào của đá quý
tôi xác định sự phụ thuộc ngọc bên Gemfile của đá quý
gem 'database_cleaner'
Và trong Rakefile
Jeweler::Tasks.new do |gem|
...
gem.add_dependency 'database_cleaner'
end
Sau đó bên trong lib tôi đã tạo ra các tập tin my_gem.rb và tasks.rake. Như sau, my_gem.rb:
module MyGem
class Railtie < Rails::Railtie
rake_tasks do
load 'tasks.rake'
end
end
end
Và tasks.rake:
task :my_task do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
end
Tôi đã cài đặt đá quý (sudo cào cài đặt), tạo ra một dự án đường ray trống và bổ sung phụ thuộc ngọc trong đường ray Gemspec (gem 'my_gem'
). Nhưng khi tôi cố gắng chạy rake my_task
tôi gặp lỗi uninitialized constant DatabaseCleaner
.
Tôi cũng đã thử thêm require 'database_cleaner'
từ bên trong nhiệm vụ, làm tăng lỗi no such file to load -- database_cleaner
và gem 'database_cleaner'
làm tăng lỗi database_cleaner is not part of the bundle. Add it to Gemfile.
.
Có cách nào để giải quyết điều này mà không cần thêm gem 'database_cleaner'
vào Gemspec của dự án đường ray không?
Cảm ơn
UPDATE (thêm liên kết đến mã nguồn): https://github.com/jordinl/dummy_tasks
bạn có thể đăng mygem.gemspec từ đá quý và Gemfile.lock khỏi ô trống ray ứng dụng? – johnmcaliley
này! Tôi đã thêm liên kết đến repo github. cảm ơn! – jordinl