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 явно.

Другие вопросы по тегам