LoginSignup
14
11

More than 1 year has passed since last update.

RubyOnRailsで環境変数を使用する方法

Last updated at Posted at 2020-10-06

■英語の記事↓
[How to Use Environment Variables in Ruby On Rails]
(https://qiita.com/alokrawat050/items/0d7791b3915579f95791)

環境変数とは

各アプリケーションには、外部サービス用の電子メールアカウント資格情報やAPIキーなどの構成設定が必要です。環境変数を使用して、ローカル構成設定をアプリケーションに渡すことができます。
Ruby On Railsで環境変数を使用する方法はいくつかあり、FigaroGemのようなgemもあります。
この記事には、local_env.ymlファイルを使用して、実装の方法を共有させていただきます。

環境変数ファイルをプライベートとして保持する

GitHubを使用してコードを保存および共有していて、プロジェクトがオープンソースである場合、開発者は誰でもコードにアクセスできます。 個人情報やAPIキーを一般の人と共有したくない、プライベートgitリポジトリを使用してチームで共同作業している場合、ローカル設定がチームのすべてのメンバーに適しているとは限りません。

local_env.ymlファイルを使用:

標準のYAMLファイル形式を使用して、各環境変数のキーと値のペアを含む単純なファイルを作成します。

config/local_env.ymlファイルを作成:

MAIL_USERNAME: 'Your_Username'
MAIL_PASSWORD: 'Your_Password'

.gitignoreに設定
アプリケーションのgitリポジトリを作成した場合、アプリケーションのルートディレクトリには.gitignoreという名前のファイルが含まれている必要があります。
.gitignoreファイルに以下の行を追加

/config/local_env.yml

Railsアプリケーションファイルに設定
環境変数を設定後で、ファイル「local_env.yml」は「config/application.rb」に設定が必要です。
config/application.rbファイルに下記のコードを設定

config.before_configuration do
  env_file = File.join(Rails.root, 'config', 'local_env.yml')
  YAML.load(File.open(env_file)).each do |key, value|
    ENV[key.to_s] = value
  end if File.exists?(env_file)
end

上記のコードは、local_env.ymlファイルから環境変数を設定します。

コードに環境変数を使用
RailsアプリケーションでENV ["MAIL_USERNAME"]を使用することができます。
例:

ActionMailer::Base.smtp_settings = {
    address: "smtp.gmail.com",
    enable_starttls_auto: true,
    port: 587,
    authentication: :plain,
    user_name: ENV["MAIL_USERNAME"],
    password: ENV["MAIL_PASSWORD"],
    openssl_verify_mode: 'none'
    }

コーディングを楽しみましょう!:grinning: :grinning:

ご不明な点がございましたらご連絡して頂ければと思います。

以上です。よろしくお願いいたします。

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11