Ruby on rails在rake任务中指定环境

时间:2015-01-13 01:04:32

标签: ruby-on-rails ruby rake seed

我想创建一个自定义db/seeds文件并将其传递给特定环境

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

我的rake任务的任务部分是否可以指定只说测试环境而不必在命令行中运行RAILS_ENV=test rake

1 个答案:

答案 0 :(得分:1)

如果你正在做的就是使用这个特定任务为数据库播种,你只需要在正确的数据库中建立连接作为任务的一部分。

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?