Rails備品の複数のYAMLデフォルト
あなたは、あなたが使うことができるということを知っていますYAML defaults in your fixtures 共通の属性値を抽出し、フィクスチャを読みやすくする.
古い方法-デフォルト
Railsの例では、ラベルとアンカー/エイリアスの両方に「デフォルト」を使用するので、ちょっと混乱していますが、ここでは複数のデフォルトを扱う方法を示します.
The Rails docs どのように多くの「デフォルト」ラベルがあるかは問題ではありません.同じラベルを使っていても上書きされません.
The YAML spec エイリアシング機能の説明
エッジレールの道
それをするもう一つの方法がありますEdge Rails . 無視されるべきフィクスチャを指定することができます.
このような例を書き換えることができます.
どちらを使いましょうか.
Rails 6.0.3.2以降を使用している場合は、とにかく選択肢はありません.しかし、そのときでさえ、アンカー/エイリアスがラベルを映し出すので、エッジオプションがおもしろい間、私は2つの理由のために「古い方法」に固執します それは以下のコードです(あなたは、ザンフィクスチャブロックを書く必要はありません) デフォルトのラベルは、スポットと明示的に簡単です.あなたは
DEFAULTS: &DEFAULTS
created_on: <%= 3.weeks.ago.to_s(:db) %>
first:
name: Smurf
<<: *DEFAULTS
second:
name: Fraggle
<<: *DEFAULTS
複数のデフォルトの設定を使用する場合はどうすればよいですか?古い方法-デフォルト
Railsの例では、ラベルとアンカー/エイリアスの両方に「デフォルト」を使用するので、ちょっと混乱していますが、ここでは複数のデフォルトを扱う方法を示します.
DEFAULTS: &decisions
icon: 🧠
name: Decisions
DEFAULTS: &help
icon: 👋
name: Help
founders_decisions:
team: founders
<<: *decisions
founders_help_requests:
team: founders
<<: *help
この方法を理解するには、2つのことを知る必要があります.The Rails docs どのように多くの「デフォルト」ラベルがあるかは問題ではありません.同じラベルを使っていても上書きされません.
Any fixture labeled “DEFAULTS” is safely ignored
The YAML spec エイリアシング機能の説明
Repeated nodes (objects) are first identified by an anchor (marked with the ampersand - “&”), and are then aliased (referenced with an asterisk - “*”) thereafter.
エッジレールの道
それをするもう一つの方法がありますEdge Rails . 無視されるべきフィクスチャを指定することができます.
このような例を書き換えることができます.
_fixture:
ignore:
- decisions
- help
decisions: &decisions
icon: 🧠
name: Decisions
help: &help
icon: 👋
name: Help
founders_decisions:
team: founders
<<: *decisions
founders_help_requests:
team: founders
<<: *help
どちらを使いましょうか.
Rails 6.0.3.2以降を使用している場合は、とにかく選択肢はありません.しかし、そのときでさえ、アンカー/エイリアスがラベルを映し出すので、エッジオプションがおもしろい間、私は2つの理由のために「古い方法」に固執します
DECISION_DEFAULTS: &decisions
の代わりにdecisions: &decisions
しかし、ラベルは本当に役に立ちません、そして、もう一度、あなたがちょうどそれより多くのコードを書いているならばDEFAULTS: &decisions
Reference
この問題について(Rails備品の複数のYAMLデフォルト), 我々は、より多くの情報をここで見つけました https://dev.to/sowenjub/multiple-yaml-defaults-in-rails-fixtures-4j3dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol