[解決済み] railsの開発環境のENV変数を自分のコードに設定することは可能ですか?
2023-02-26 03:22:40
質問
私は、bashでENV変数を設定することができることを知っています。
export admin_password = "secret"
しかし、私のrailsのソースコードのどこかにそれを行う方法があるのでしょうか?私の最初の試みは、次のようなものでした。
environment/development.rb
ENV['admin_password'] = "secret"
しかし、うまくいきませんでした。何か方法があるのでしょうか?
どのように解決するのですか?
[更新情報]
一般的な問題であれば、「旧解答」にある解決方法が有効ですが、このセクションでは、あなたのコメントから明らかになった具体的な質問に回答しています。
質問で指定されたとおりに環境変数を設定することができるはずです。例として、私はHTTP基本認証を使用するHerokuアプリを持っています。
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == ENV['HTTP_USER'] && password == ENV['HTTP_PASS']
end
end
end
# config/initializers/dev_environment.rb
unless Rails.env.production?
ENV['HTTP_USER'] = 'testuser'
ENV['HTTP_PASS'] = 'testpass'
end
ということで、あなたの場合は
unless Rails.env.production?
ENV['admin_password'] = "secret"
end
設定が再読み込みされるように、サーバーを再起動することを忘れないでください!
[古い回答]
アプリ全体の設定については、以下のような解決策を検討するとよいでしょう。
ファイルを作成する
config/application.yml
に、アクセスできるようにしたいオプションのハッシュを記述します。
admin_password: something_secret
allow_registration: true
facebook:
app_id: application_id_here
app_secret: application_secret_here
api_key: api_key_here
ここで、ファイル
config/initializers/app_config.rb
を作成し、以下を記述します。
require 'yaml'
yaml_data = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'application.yml'))).result)
APP_CONFIG = HashWithIndifferentAccess.new(yaml_data)
これで、アプリケーションのどこからでも
APP_CONFIG[:admin_password]
にアクセスすることができます。(なお、イニシャライザには
ERB.new
を含むので、YAML ファイルは ERB マークアップを含むことができることに注意してください)。
関連
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] heroku open - no app specified
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] Rails 3.1 を使用して、「ページ固有」の JavaScript コードをどこに置くか?
-
[解決済み] 実行時にメソッドが定義されている場所を見つけるには?
-
[解決済み] Heroku/devise - リンク先のホストがありません! hostパラメータを指定するか、default_url_options[:host]を設定してください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] Ruby on Railsのためにnetbeansを構成する方法は?
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?