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

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

是否可以在rake任务的task部分指定say only the test environment而不必在命令行中运行RAILS_ENV=test rake

最佳答案

如果您所做的只是将此特定任务植入数据库,则只需在任务中与正确的数据库建立连接。

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?

关于ruby-on-rails - Ruby on Rails在rake任务中指定环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27913457/

10-12 12:43