Railsの場合、設定変数にアクセスしたり出力したりする方法(実験やテスト/デバッグとして)質問する

Railsの場合、設定変数にアクセスしたり出力したりする方法(実験やテスト/デバッグとして)質問する

例えば、config/environments/production.rbRails 3アプリでは、

config.serve_static_assets = false

変数がたくさんあります。どのような種類の値が利用できるか、また、どのような値に設定されているかを確認するためだけに、これらすべてをまとめて(1 つずつ指定するのではなく、オブジェクトで)印刷(FooController#index などのビューで印刷)するにはどうすればよいでしょうか。

また、ファイル内の値.yml(ハッシュや設定オブジェクトなど)や 内の値を印刷するにはどうすればconfig/initializersよいでしょうか。

MyAppFoo::Application.config.session_store :active_record_store

内容を印刷できることが分かりました

ActiveRecord::Base.configurations

だがしかし

ActionController::Base.configurations

MVC コンポーネントのすべての情報を印刷する方法はありますか?

ベストアンサー1

Rails の設定のほとんどは、次の方法でアクセスできます。

Rails.application.config.<your_variable>

config 内の .yml ファイルの値を印刷することに関しては、Rails は から現在の環境の値のみをロードしdatabase.yml、カスタム yml config ファイルはまさにカスタムとなるため、自分で行う必要があります。これらをすべてロードする方法の 1 つを次に示します...

all_configs = []
Dir[Rails.root.join("config/*.yml")].each {|f| all_configs << YAML.load_file(f) }

初期化子で設定される設定に関しては、それが Rails 構成オプション (例として挙げたセッション ストアなど) である場合は、 を通じて利用できますRails.application.config。そうでない場合 (たとえば、gem の構成) は、gem クラスからそれらの設定を手動で見つける必要があります。

おすすめ記事