在我的 Roda 应用程序中,我有这个:
# Gemfile
puts "env is: " + ENV["RACK_ENV"]
if ENV["RACK_ENV"] == "development"
puts "env dev"
gem "gem1"
end
这是行不通的:“puts”没有被执行,gem“gem1”也不包括在内。“env”是开发,我在页面加载时检查过。
为什么不以及如何解决?
“puts”没有被执行,gem“gem1”也不包括在内。
实际上,这证明您的 Ruby 代码执行正确。如果您运行bundle install
orrackup
或,则未设置rails s
环境变量,因此.RACK_ENV
ENV['RACK_ENV']
nil
如果您需要根据环境设置 gem,您可以使用 Gemfile 中的组。
你可以做一些这样的事情......
# A sample Gemfile
source 'https://rubygems.org'
gem 'roda'
gem 'haml'
# This is the group for development environment
group :development do
# gem 'shotgun'
gem 'gem1'
end
group :test do
gem 'rspec'
gem 'capybara'
gem 'byebug'
end
回到你的问题...
我假设你没有设置RACK_ENV
变量。我不开发 Roda,但我认为这只是假设它是“开发”。因此,如果您想RACK_ENV
在代码中使用变量,则需要明确设置它。
您可以export RACK_ENV=development
明确设置环境。