2012-03-10 2 views
4

サンプルデータでデータベースを作成したいのですが、なんらかの理由でcreated_atをシミュレートしたいと思います。 これは私のseeds.rbです:データベースでseeds.rbのタイムスタンプをシミュレートします

9.downto(1) do |i| 
    product = Product.new(price: 99.99) 
    product.created_at = i.days.ago, 
    product.save! 
end 

rake db:seedの結果は、私が避けるためにどのように

2012-03-03 16:50:30.316886000 Z- 1を必要とするとき

---- 2012-03-03 16:50:30.316886000 Z- 1

、のように見えますこれらのシンボルは結果にありますか?

(デシベル:sqlite3の)

更新:[date_value, 1]: 私はちょうど私がコールバックでproduct.created_at = i.days.ago、 を使用する場合(before_savecreated_atArrayであることがわかりました。だから私は

before_save { self.created_at = self.created_at[0] } 

を使用することができ、その後、データベース内の値は、(なし)、右になりますが、コールバックを使用することは良い方法のように見えるしていません。

+0

'product.created_at =(Date.new -i)'はあなたのために働くでしょうか? – ScottJShea

+0

提案ありがとう、ありがとうございます、それは動作しません。私はいくつかの奇妙な値を得る( '--- -4713-12-25-1') – evfwcqcg

答えて

4

問題は、この行です:

product.created_at = i.days.ago, 

あなたはcreated_atの配列で終わるている理由です、末尾のカンマを取り除く必要があります。それを修正し、before_saveコールバックを取り除くことができます。

編集:使用しているORMがArrayをシリアル化しようとしているため、YAMLに変換しているため、---が表示されます。

関連する問題