Railsではcsvやyamlで作られたテストデータを読み込むfixtureという機能があります。
アプリケーションを作っているときに毎度ユーザなどを作るのは面倒なので、テストデータを作っておいて、migrate時に読み込ませたりしているのですが、どうもint型でnullを入れようとすると0になってしまう現象が起きてしまいます。
調べてみたらパッチとしてずいぶん前からあるみたいです。
Null values in a CSV format fixture show up a 0 in the test database
activerecord/lib/fixtures.rb の read_csv_fixture_files メソッドの
row.each_with_index { |cell, j| data[header[j].to_s.strip] = cell.to_s.strip }
を、
row.each_with_index { |cell, j| data[header[j].to_s.strip] = cell == nil ? nil : cell.to_s.strip }
に変えるだけ。
でも本体はなるべくいじりたくないので、どうしようかな。

