0

在我的 Roda 应用程序中,我有这个:

# Gemfile

puts "env is: " + ENV["RACK_ENV"]

if ENV["RACK_ENV"] == "development"
  puts "env dev"
  gem "gem1"
end

这是行不通的:“puts”没有被执行,gem“gem1”也不包括在内。“env”是开发,我在页面加载时检查过。

为什么不以及如何解决?

4

2 回答 2

1

“puts”没有被执行,gem“gem1”也不包括在内。

实际上,这证明您的 Ruby 代码执行正确。如果您运行bundle installorrackup或,则未设置rails s环境变量,因此.RACK_ENVENV['RACK_ENV']nil

于 2017-10-26T04:53:45.153 回答
1

如果您需要根据环境设置 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明确设置环境。

于 2017-10-26T04:18:24.957 回答