16846
RubyMineでDevelopmentモードでサーバを立ち上げる際にどのようにしたら環境変数変数を設定できるのか分からず苦戦しています。  
今まではターミナルを利用してサーバを立ち上げていましたので、ターミナルに直接環境変数を打ち込んで設定していました。

RubyMineの"Run"-"Edit Configurations"の"Before
launch"でサーバ立ち上げ前の設定ができるのではと思っていますが、どうやってシェルスクリプト走らせることができるのかよく分かりません。  
どなたか設定方法分かる方いましたらご教授よろしくお願いします。
CC BY-SA 3.0
2015-09-22T08:26:18.480
16842
2015-09-22T10:46:23.797
12232
question
ruby-on-rails rubymine
RubyMineでサーバ立ち上げ時に環境変数を設定する方法
ちょっと間接的な回答を投稿します。

RubyMineユーザーかつRails開発者ですが、僕はサーバ起動時に環境変数を設定したいと思ったことがありません。  
なぜかというと、production環境以外では環境変数を使わないようにしているからです。

僕は config （旧名 rails_config）というgemをよく使っています。

<https://github.com/railsconfig/config>

このgemを使うと必要な設定をyamlファイルに入れてRails上から参照することができます。

```

    # config/settings/development.yml
    some_user: 'dev-user'
    some_password: 'dev-password'
    
    # Rails上のコード
    user = Settings.some_user
    password = Settings.some_password
    
```

production環境では以下のようにして環境変数を使うようにします。  
（GitHub等のソース管理ツールに重要な情報を載せないようにするためです）

```

    # config/settings/production.yml
    some_user: '<%= ENV["SOME_USER"] %>'
    some_password: '<%= ENV["SOME_PASSWORD"] %>'
    
```

もし、development環境でもソース管理ツールに載せたくない情報があれば、 development.local.yml を使います。  
（config gemのインストール時に`config/settings/*.local.yml`が`.gitignore`に追加されていることが前提です）

```

    # config/settings/development.local.yml
    some_user: 'dev-user'
    some_password: 'very-critical-password'
    
```

このようにしておくと、開発環境では環境変数を使わなくてよくなります。  
（必要な情報をyamlで管理できます）

また、僕はあまり使っていませんが、以下のようなgemや機能を使っても同じようなことができるはずです。

  * <https://github.com/bkeepers/dotenv>
  * <https://github.com/laserlemon/figaro>
  * Rails標準のsecrets.ymlファイル

こうしたツールを活用して、環境変数に直接依存しない開発環境を構築する方法を模索してみるとよいかもしれません。

ご参考までに。
CC BY-SA 3.0
2015-09-22T10:46:23.797
16846
2015-09-22T10:46:23.797
85
16842
answer