1

私はRailsで書いていません。ただのルビーです。

しかし、Gemfile に独自の開発グループを持つ開発環境があります。

しかし、Iron.io の本番環境では使用しません。

特に、私は「log_buddy」を使用しており、全体に多くのd {var}ステートメントがあります。

そして、 andステートメントpryを持つ whichを使用します。require pryrequire-debug

これらのステートメントは、コードが本番環境で実行される場合にエラーを発生させpry、重複したログを作成します。log_buddy

2 つの環境を区別するにはどうすればよいですか?

私は他の宝石について読んだことがありますがdotenv、それが私のシナリオでどのように機能するのかよくわかりませんでした。

4

2 に答える 2

1

Rails を使用しないからといって、Bundler グループを使用できなくなるわけではありません。

# These gems are in the :default group
gem 'nokogiri'
gem 'sinatra'

gem 'wirble', :group => :development

group :test do
  gem 'faker'
  gem 'rspec'
end

group :test, :development do
  gem 'capybara'
  gem 'rspec-rails'
end

gem 'cucumber', :group => [:cucumber, :test]

次に、妥当と思われる方法で環境名を取得する必要があります。

bundler_env = whatever # could be ENV['ENVIRONMENT'], for instance
bundler_env ||= :production # Specify a fallback if none specified

完了したら、gem を要求します。

Bundler.require(:default, bundler_env)
于 2015-05-17T10:29:27.497 に答える
1

dev にyes/シナリオしかない場合、家族はやり過ぎです。私は周囲の開発要件を次のように扱います。nodotenv

if ENV['DEV']
  require 'pry'
  ...
end

次に、開発シナリオを次のように実行します。

DEV=true bundle exec ...

DEV環境変数はprodサーバーで定義されていないため、そこには何も含まれません。

初期化は次のlog_buddyようになります。

LogBuddy.init(ENV['DEV'] ? {:logger => Logger.new('my_log.log')} : nil)
于 2015-05-17T08:12:25.133 に答える