2015-01-13 83 views
2

我想創建一個自定義db/seeds文件,並把它傳遞給特定的環境Ruby on Rails的指定rake任務環境

desc "Select for bonus" 
task :bonus => :environment do 
    puts "Bonus for: #{pick(User).name}" 
end 

是在我耙任務的任務部分可以指定只說測試環境,而不必在我的命令行中運行RAILS_ENV=test rake

+0

你總是可以用'ENV ['RAILS_ENV'] =「value」來改變環境,但是聽起來你需要RAILS_ENV被設置爲_before_ ruby​​執行。 –

回答

0

如果您所做的只是爲此數據庫填充此特定任務,那麼您只需要與正確的數據庫建立連接作爲任務的一部分。

desc "Select for bonus" 
task :bonus => :environment do 
    puts "Bonus for: #{pick(User).name}" 
    ActiveRecord::Base.establish_connection('test') 
    .... 
end 

ActiveRecord::Base.establish_connection('test')運行該數據庫的臺階上休息前,上述連接到test數據庫。

如果作爲任務的一部分做了很多更復雜的事情,那也是可能的。有關提示,請參閱How do I force RAILS_ENV in a rake task?