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。