在Rails中,您可能希望您的环境在启动时执行不同的操作,具体取决于您是否正在运行rake任务.例如,我的用例是在app start上将几百MB的缓存加载到内存中.我们显然不希望在rake命令上发生这种情况.
—更新—
以下是可靠的解决方案,适用于heroku.
is_rake = (ENV['RACK_ENV'].blank? || ENV['RAILS_ENV'].blank? || !("#{ENV.inspect}" =~ /worker/i).blank?)
最佳答案 检测您的环境是否处于rake命令中非常简单,但是,我花了一些时间才弄明白.我希望这可以帮助那里的人!
#In environment.rb, I do the following
is_rake = !("#{ENV.inspect}" =~ /rake/i).blank?
puts "Is Rake? #{is_rake}"