最近触り始めたRailsのシステムで、テストデータを変更する必要があったので調べてみると、
どうやらMarshalというものを使ってテストデータを保持しているらしい。
ファイルを開いてみた感じでは普通にテキストっぽかったので、そのままviで編集、テスト実行。
1) Error:
NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]
・・・。おかしー。どうやってもこける。。。今までこけてなかったところまで。。。
それでは試しにとsvnからテストデータのファイルを取得しなおして実行すると、成功!
うーむ、どうやらMarshalデータを直接いじったのが原因か。
ネットで調べてみるとMarshalでdumpされたデータはバイナリなので直接編集はできないようで。
だってfileコマンドで調べたら不通にASCIIテキストだって言われるんだもん。。。
$ file hoge.yml
hoge.yml: ASCII text, with very long lines
まぁともあれMarshalというものも初めて知ったので、勉強になりました。
0 件のコメント:
コメントを投稿