2016-05-23 2 views
0

私はページ構造をテストするために複数のファイルを私のrailsアプリケーションにシードしようとしていますが、属性の1つはdatetime stampです。しかし、私はこのフィールドをシードする方法を理解することはできません。私はcreated_atを試しましたが、認識されません。残念ながら、私はルビーのドキュメントやレールキャストで例を見つけることができませんでした。datetimeでオブジェクトをシードするRails

これを行うにはどうすればいいですか?ありがとう

12.times { Post.create(title: 'pellentesque', body: 'Lorem ut vehicula', postnumber: '1', date: created_at, image_url: 'https://upload.wikimedia.org/wikipedia/commons/1/19/John_Calvin_-_Young.jpg') } 
+0

日時列の型を持つフィールドの名前は何ですか?たとえば、 'created_at'フィールドを上書きしたい場合は' Post.create(title: "foobar"、created_at:Time.now - 1.days) ' – 23tux

+0

エラーが発生していますか? created_atおよびupdated_atはアクティブレコードによって自動的に設定され、手動で設定する必要はありません。このフィールドを設定する場合は、[この回答](http://stackoverflow.com/a/1386556/4358503)を使用してラッピングしてみてください。カスタムフィールドを設定しようとしている場合は、 'code' field_name:Time.current' code'を使用してカスタムフィールドを設定します。これで問題が解決しない場合は、スキーマを投稿することをお勧めします。 – Datise

+0

@ 23tuxフィールド名は単純に 'date'で、フィールド名としてdatetimeが代入されます。あなたは私がその列を削除し、代わりにcreated_at:Time.now列で移行できると思っていますか? Datise私は文法エラーを取得しています。一旦日付属性を削除すると消え去ります。 – Keenanp

答えて

2

日に渡される変数:日付や時刻オブジェクトである必要があります:

some_date = 4.days.ago 

12.times do 
    Post.create(
    title: 'pellentesque', 
    body: 'Lorem ut vehicula', 
    postnumber: '1', 
    date: some_date, # some_date passed to date attribute 
    image_url: 'https://upload.wikimedia.org/wikipedia/commons/1/19/John_Calvin_-_Young.jpg' 
) 
end 
+0

ありがとう、これはうまくいきました!将来の回答を求める人のために参考にしてください。 http://api.rubyonrails.org/classes/DateTime.html 例のコードのソースを表示します。 私は 'date:Time.zone.now.to_datetime'を使って現在の時刻を表示しました。 – Keenanp

0

データベースフィールドがタイムスタンプの場合、手動で設定する必要はありません。新しい行を作成するときに設定されます。

手動で設定する場合は、Time.strptime('06/30/2012 00:00', '%m/%d/%Y %H:%M')のようなタイムスタンプを作成する必要があります。

関連する問題