ruby-on-rails – 如果我正在运行rake命令,如何检测rails?

在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}"
点赞