RailsでDBユーザー名、pw、データベース名を取得できますか?



Can You Get Db Username



解決:

Rails内から、構成オブジェクトを作成し、そこから必要な情報を取得できます。

config = Rails.configuration.database_configuration host = config [Rails.env] ['host'] database = config [Rails.env] ['database'] username = config [Rails.env] ['username'] password = config [ Rails.env] ['password']

詳細については、Rails :: Configurationのドキュメントを参照してください。



これは、YAML :: loadを使用して、データベース構成ファイルから構成をロードします(database.yml)これを使用してRails環境の外部から情報を取得できます。

require'YAML 'info = YAML :: load(IO.read(' database.yml '))print info [' production '] [' host '] print info [' production '] [' database '] .. .. 

上記のコメントでのブライアンの答えは、もう少し公開する価値があります。



>> Rails.configuration.database_configuration [Rails.env] => {'encoding' => 'unicode'、 'username' => 'postgres'、 'adapter' => 'postgresql'、 'port' => 5432、 'ホスト '=>' localhost '、'パスワード '=>' postgres '、'データベース '=>' mydb '、'プール '=> 5} 
ActiveRecord :: Base.connection_config

接続構成をハッシュで返します。

=> {:adapter => ADAPTER_NAME、:host => HOST、:port => PORT、:database => DB、:pool => POOL、:username => USERNAME、:password => PASSWORD}

NStpettはコメントで次のように述べています。このソリューションは、database.ymlおよび環境変数からDATABASE_URL。