テストデータ ( data/fixture/test_data.yml ) のロードがうまくいかない1

ちょっとはまったので覚書。

  • エラー文

‘The object “***″ from class “***” is not defined in your data file.’

テストデータに外部キーを読み込むときに頻発。

  • test_data.yml
Table1:
  label1:
    name:  なまえ
    body:  ほんたい
  label2:
    name:  なまえ2
    body:  本体

Table2:
  labelA:
    name:  おなまえ
    table1_id:  label1
  labelB:
    name:  おなまえ2
    table1_id:  label2
  • 外部キーの読み込みは実際の値ではなくtest_data.yml内のラベルの値を使う

大抵の場合、idは自動設定されるためだと思われる。
label1、label2はtest_data.yml内でデータにラベリングするだけの値で他には影響を及ぼさない。

  • 外部キーの読み込みがある場合はラベルが先に読み込まれるようにする

上の例だと、Table1とTable2の順が逆になっているとエラーが出る。

参考)

ここまで書いて、前半部分のエラーに当たった人発見。