Ruby-код в Gemfile не выполняется
В моем приложении Roda у меня есть это:
# Gemfile
puts "env is: " + ENV["RACK_ENV"]
if ENV["RACK_ENV"] == "development"
puts "env dev"
gem "gem1"
end
Это не работает: "путы" не выполняются, и гем "gem1" также не включен. "Env" - это разработка, я проверял это при загрузке страницы.
Почему нет и как это исправить?
2 ответа
"путы" не выполняются, и гем "gem1" также не включен.
На самом деле, это доказывает, что ваш код на Ruby выполнен правильно. Если вы бежите bundle install
или же rackup
или же rails s
переменная среды RACK_ENV
не установлено, так ENV['RACK_ENV']
является nil
,
Если вам нужно установить драгоценные камни на основе их среды, вы используете группы в 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
установить env явно.