10
我正在使用Sinatra,並且我想要設置一些Rails具有的便利的Rake任務,特別是rake db:seed
。如何使我的Sinantra應用程序/環境下運行Rake任務?
我第一遍是這樣的:
namespace :db do
desc 'Load the seed data from db/seeds.rb'
task :seed do
seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
system("racksh < #{seed_file}")
end
end
racksh
是寶石模仿Rails的控制檯。所以我只是直接將種子文件中的代碼提供給它。它可以工作,但顯然不理想。我想要做的是創造一個環境,任務,允許命令到Sinanta應用程序/環境下運行,就像這樣:
task :environment do
# what goes here?
end
task :seed => :environment do
seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
load(seed_file) if File.exist?(seed_file)
end
但我想不通的是如何設置環境所以rake任務可以在它下面運行。任何幫助將非常感激。