[解決済み] [Solved] このdatabase.ymlファイルにおける&,<<,*の意味は何ですか?
2022-04-12 02:31:08
質問
今までdatabase.ymlは各パラメータが明示されているものしか使っていませんでしたが、下記のファイルではよくわからない文字が使われています。各行や記号(&,*,<<)の意味、このファイルの読み方について教えてください。
development: &default
adapter: postgresql
database: dev_development
test: &test
<<: *default
database: test_test
cucumber:
<<: *test
production:
<<: *default
database: test_production
解決方法は?
その
&
はノードの別名を示します(例では
&default
は開発ノードを "default"としてエイリアスします)、そして
*
は、エイリアスされたノードを "default" という名前で参照します。また
<<:
はそのノードの内容を挿入する。
ここで、YAMLの仕様を引用させてください。
繰り返されるノード(オブジェクト)は、まずアンカー(アンパサンド - "&" でマーク)で識別され、それ以降はエイリアス(アスタリスク - "*" で参照)される。
ということで、例の一部
development: &default
adapter: postgresql
database: dev_development
test: &test
<<: *default
database: test_test
に展開されます。
development: &default
adapter: postgresql
database: dev_development
test: &test
adapter: postgresql # from the "default" alias
database: test_test # overridden by the duplicate key
を作成し、同時に "test" ノードも "test" というエイリアスで利用できるようにします。
を見てみましょう。 YAML 仕様 - 2.2 構造体 をご覧ください(または、さらに多くのドキュメントが必要な場合は、こちらをご覧ください)。 3.2.2.2. アンカーとエイリアス )
関連
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?
-
[解決済み] 未初期化の定数 "コントローラ名"
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] YAMLとJSONの違いは何ですか?
-
[解決済み] PythonでYAMLファイルをパースするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] デバイスを使用する現在のユーザーメソッド
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?