Я использую Sinatra, и я хотел настроить некоторые из задач rake для удобства, которые есть у Rails, в частности rake db:seed
.
Мой первый проход был таким:
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 могли выполняться под ней. Любая помощь будет высоко ценится.