RailsのfixtureでCSVを使う場合は空のセルに注意

  • CSV から fixture を読み込む場合、空つまり null になるはずのものが 0 になってしまう1
  • もちろん ,"", と空文字列であることを明示してあればこの限りではないが、Excel ではこのような安全なカラムを作ることができない2
    • 中にある文字列を解釈して必要に応じて " を付加してくれるが、空文字列を明示することはできない
  • 空になり得るカラムが最初から fixture に存在していない場合は当然問題は起きない

ということで

fixture は YAML が安全

ということに。ふーむ。

拙作 ModelDumper は CSV でも YAML でも出力できます。

cf.

A model dumper for rails console ( Rails 3 or later ) and .irbrc for rails env — Gist

  1. DBMSに依存してるかも。少なくともSQLiteでは発生する。 

  2. とりあえず Excel 2003 ではできない。 

More