[英]what's different between RACK_ENV and RAILS_ENV?
我想獲取 Rails 應用程序的當前環境。 但我不知道 RACK_ENV 和 RAILS_ENV 之間有什么不同? 誰能幫我?
為什么有時 RACK_ENV 為空,但 RAILS_ENV 有價值?
您可以使用 RACK_ENV 以及 RAILS_ENV,但 RAILS_ENV 位於 RACK_ENV 之前。
rails/rails.rb 在 b0b4b176b0e061a4f03ddce669637b7d6c37aa33 · rails/rails
Rails 應用程序使用RAILS_ENV
。 其他基於機架的應用程序使用RACK_ENV
。 如果您有 Rails 應用程序,請忽略RACK_ENV
。
編輯:另一個答案更正確。
def set_environment
ENV["RAILS_ENV"] ||= options[:environment]
end
ENV["RAILS_ENV"] 來自選項
def options
merged_options = @use_default_options ? default_options.merge(@options) : @options
merged_options.reject { |k, v| @ignore_options.include?(k) }
end
如果默認 Rails 服務器,則環境來自默認選項
def default_options
environment = ENV['RACK_ENV'] || 'development'
default_host = environment == 'development' ? 'localhost' : '0.0.0.0'
{
:environment => environment,
:pid => nil,
:Port => 9292,
:Host => default_host,
:AccessLog => [],
:config => "config.ru"
}
end
所以, ENV['RACK_ENV'] 有默認值 'development'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.