RailsでYAMLファイルを読み込んだときのエラー

以前、DB => YAML出力するためのプラグインを作ったのだが、出力されたファイルをrake db:fixtures:loadで読み込むときにはまってしまったので、これはそのときのメモ。


環境


エラー内容
rake db:fixtures:load
で読み込もうとすると、

foo@desktop:/media/disk/workspace/ballondor$ rake db:fixtures:load
(in /media/disk/workspace/ballondor)
rake aborted!
a YAML error occurred parsing test/fixtures/clients.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html
The exact error was:
ArgumentError: syntax error:ScannerException null we had this mapping keys are not allowed here

(See full trace by running task with --trace)

というエラーメッセージが!!
YAMLにTabは使えないみたいな感じで怒られているが、Tabをすべて空白に置換しても、同じエラーが出てしまう。


解決方法
というわけで、地道にデータをチェックするはめに。。。
すると、

client1:
  email: ?

?の入っている行を発見。
試しにこの?を消してみると、今度はうまく読み込むことができた。


まとめ
YAMLのエラーメッセージには、かなり惑わされた。
Tabや?以外にも、使用できない文字が結構ありそうなので、詳しくYAMLの仕様について調べてみるつもり。