6

Railsコンソールで環境変数にアクセスできませんが、アプリケーションでは機能します。

.powenv私は持っていますexport SENDGRID_PASSWORD="123"

config/initializers/mail.rbそこにあります:

ActionMailer::Base.smtp_settings = {
  :password => ENV['SENDGRID_PASSWORD']
}

そのため、コンソールに入力UserMailer.welcome_mail.deliverすると、「ArgumentError:SMTP-AUTH要求されましたが、秘密のフレーズがありません」というエラーが発生します。ただし、アプリケーションからはメールを正常に送信します。

コンソールで環境変数を使用できるようにするにはどうすればよいですか?

4

3 に答える 3

11

試す

. .powenv

それから

rails c

(ドットは現在の環境でスクリプトを実行するコマンドです)

于 2013-01-25T16:03:00.917 に答える
4

PowがorファイルからRailsに情報を渡すため、Railsコンソールは環境変数にアクセスできません... Railsそれらのファイルを独自に読み取りません。.powenv.powrc

つまり、ファイルにENV['SENDGRID_PASSWORD']変数を設定して.powenvいますが、Railsコンソールを起動したときにそのファイルは変更されていません。

before_filterアプリケーションコントローラーでを設定する必要があります(または、Railsアプリ内からファイルENV['SENDGRID_PASSWORD']を読み取る別の同様の方法を考え出します)。.powenvbefore_filter

于 2012-06-13T15:00:58.357 に答える
2

後世のために、必要なロード順序に応じて、environment.rb、development.rb、またはイニシャライザー(config / initializers / pow.rb)のいずれかに次のようなものを追加できます。

#pow環境変数を開発環境とテスト環境にロードします
File.exist?( "。powenv")の場合
  IO.foreach('。powenv')do | line |
    次の場合!line.include?('export')|| line.blank?
    キー、値= line.gsub('export'、'')。split('='、2)
    ENV [key.strip] = value.delete('"\'')。strip
  終わり
終わり
于 2014-01-22T06:19:47.487 に答える