4

Ruby on Railsアプリケーションに構成値(キー、パスワード、または構成値のみ)を保存するのに最適な場所はどこですか?たくさん検索しましたが、正しいと思った答えが見つかりませんでした。

4

3 に答える 3

4

(アプリケーションの)パスワードは、Devise、Clearance、authLogicなどの認証/承認gemによって処理する必要があります。

アプリケーションへの特定のリクエストのルビーコードを介して利用できるようにしたい変数は、グローバル変数に格納できます。クラスレベルの固定値は定数に格納できます。Railsでは、コントローラーがapplication_controllerから継承するため、そこでクラスレベルの定数を定義できます。これらの変数タイプの変数の継承の正確なルールについては、Ruby言語を確認してください。

実際には、これをまったく行わないか、可能な場合は回避することがベストプラクティスであり、多くの優れたプログラマーは疫病のようにこれを回避します。これは、コードブロックがカプセル化されていないことを意味します。アクションは外部の値に依存するようになり、スコープ外で変更される可能性のある1つのものに多くのアイテムを依存させることで、結合が増加します。

于 2012-06-10T20:25:27.837 に答える
3

パスワードが含まれる場合は、機密データをリポジトリにコミットしないように、データを外部ファイルに保存することをお勧めします。次に、イニシャライザでファイルを読み取ることにより、データをメモリにロードできます。例:

config / my_secrets.yml:

development:
  password: abcdefgh
test:
  password: abcdefgh

config / initializers / load_my_config.rb:

MY_CONFIG = YAML.load_file("#{Rails.root.to_s}/config/my_secrets.yml")[Rails.env]

passwordこれで、にアクセスすることで、どの環境でもにアクセスできますMY_CONFIG['password']。本番パスワードは、サーバー上(および別の安全な場所)にのみ保持できます。

機密性の低いデータの場合は、データをイニシャライザーに直接配置します。

于 2012-06-10T20:17:18.190 に答える
2

おそらく、アプリケーションを構成するためのレールガイドを読んだことがありますか?それを超えて、各gemは通常、必要に応じて、インストール後のジェネレーターで初期化子/構成ファイルを提供し、それをREADMEに文書化します。

于 2012-06-11T12:50:36.050 に答える