2016-08-08 2 views
0

私はherokuにプッシュしましたが、アプリケーションは実行されません。私はそれがdotenvの宝石のためであることがわかります。これを回避する方法はありますか?基本的な認証ユーザー名とパスワードを暗号化するためには、ドットエンブの宝石が必要です。私は、これが単純なアプリケーションなので、deviseやその複雑さの何も使用しないことを好みます。アプリケーションはherokuにプッシュされましたが、dotenv gemのために動作しません

以下は私のheroku端末の出力ですが、唯一の問題は本当にエラーを見つける方法を知りません/出力を読むことです。

/app/config/application.rb:4:in `require': cannot load such file -- dotenv (LoadError) 
     from /app/config/application.rb:4:in `<top (required)>' 
     from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:141:in `require' 
     from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:141:in `require_application_and_environment!' 
     from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:67:in `console' 
     from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
     from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>' 
     from /app/bin/rails:9:in `require' 
     from /app/bin/rails:9:in `<main>' 





gem 'rails', '4.2.5' 

gem 'pg' 

gem 'sass-rails', '~> 5.0' 

gem 'uglifier', '>= 1.3.0' 

gem 'coffee-rails', '~> 4.1.0' 

gem 'will_paginate', '~> 3.1.0' 

gem 'jquery-rails' 

gem 'turbolinks' 

gem 'jbuilder', '~> 2.0' 

gem 'sdoc', '~> 0.4.0', group: :doc 

gem "font-awesome-rails" 

gem 'dotenv-rails', :groups => [:development, :test] 

gem 'will_paginate-bootstrap' 

gem "paperclip", "~> 5.0.0" 


group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 
end 

group :development do 
    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 
    # gem 'dotenv-heroku' 

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 
end 

答えて

1

gem 'dotenv-rails', :groups => [:development, :test] 

をただし、アプリケーションはHerokuのでproduction環境で開始されました。したがって、Railsアプリケーションは、gemをロードしようとするためクラッシュしますが、使用できません。あなたは(宝石がロードされたときdotenvは、ロード処理中に自分自身を注入しますと)それを削除、またはラップする必要が

Dotenv::Railtie.load 

あなたはおそらく手動でアプリケーションのどこかでdotenvロードコードを含まあなたが本当に手動でライブラリをロードする必要があります(一般的にそうでない)場合を除きのみDotenv場合、それを実行し、条件付きブロック内のコードは

if defined? Dotenv 
    # .. 
end 

を定義され、その後、単に、明示的なステートメントを削除。

dotenvは、アプリケーション定数はクラスのアプリケーション<のRails ::アプリケーションとのconfig/application.rbで定義されているときに発生するbefore_configurationコールバック、中にあなたのRailsアプリで初期化されます。 を早く初期化する必要がある場合は、手動でDotenv :: Railtie.loadを呼び出すことができます。

+0

すぐにロードする必要があるかどうかわかりません。新しいものです。基本認証を使うだけです。私が見つけることができる唯一の行はapplication.rbファイルです: 'require' dotenv '; Dotenv.load ".env.local"、 ".env。#{Rails.env}" 'その行を削除すると、rakeアセットを実行させることはできません:別の問題かもしれませんが、それは素晴らしいと思ういくつかの光。 – user2026178

1

dotenv逸品developmentにENVに.envから負荷環境変数のために使用されています。

と英雄はproduction環境を使用しました。だから、あなただけのGemfile

gem 'dotenv-rails', :groups => [:development, :test] 

希望にこれを配置する必要があり、この意志はあなたを助けます。

+0

これは私の宝石ファイルにありますが、宝石ファイルのどこかに置く必要がありますか?編集に私の宝石ファイルを追加しました。 – user2026178

+0

ちょうど開発グループに入れて....... –

1

dotenvは、開発環境の環境変数を管理するためのものです。 herokuでこれらの変数を手動で作成する必要があります。あなたが唯一のdevelopmenttest環境のために有効にするdotenv宝石に構成

+0

私はそれをしました。だから間違っているかどうかわからない – user2026178

関連する問題