photo credit: Ezu via photo pin cc |
書き方によっては問題なくfixtureされるのに、実際にはデータが入らないということもあるので、そのあたりも解説したい。
バージョン
- ruby 1.9.3
- rails 3.2.2
基本の書き方
authorsテーブルとauthor_idを外部キーに持つbooksテーブルがあるとして話を進める。authors.yml
shun_tak: name: Shun Tak dave: name: Dave Thomas
books.yml
ruby: title: プログラミングRuby 1.9 author: dave tech: title: 開発日誌 author: shun_tak
一つのブロックが一つのレコードを表し、レコードを識別するラベル(shun_tak: , dave: など)の下位レベルに「フィールド名: 値」の形式で記述する。注意点として、
- インデントはタブ文字ではなく空白(一般的には半角スペース2個)で表現する
- フィールド名: の後には半角スペースが入る
外部キー
外部キーは「モデル名: 参照先のラベル」の形式で表現する。上の例でもsubmitterにはsubmitter_idではなく、submitterに対応するラベルが記述されている。Railsアプリケーションではデータ作成時に、idをauto incrementせずにRailsの機能が自動で番号を付ける。ラベルによる関連付けを行う場合も同様で、特にidを明示する必要はない。(明示してもよいが)