我正在尝试将日期时间植入我的PostgreSQL数据库中:
6.times do |spots|
title = "FUN STUFF NUMBER #{spots+1}"
content = Faker::Lorem.sentence
user_id = spots + 1
spots = spots + 1
starts_at = DateTime.now + 1
Cposting.create!(
title: title,
content: content,
user_id: user_id,
spots: spots,
starts_at: starts_at
)
end
迁移看起来像这样,没什么特别的
class AddStartsAtToCpostings < ActiveRecord::Migration
def change
add_column :cpostings, :starts_at, :datetime
end
end
问题是播种后的starts_at为零。知道为什么吗?其他所有插入都没有问题。此外,如果我通过表单手动在数据库中插入内容,也可以。
答案 0 :(得分:0)
只需使用:
starts_at = Time.now
,或者
starts_at = Time.now + 1
你可以试试这个:
将迁移更改为:
class AddStartsAtToCpostings < ActiveRecord::Migration
def change_table
add_column :cpostings, :starts_at, :datetime
end
end
使用change_table
方法代替change
。
我刚刚在本地测试了您的迁移。您的迁移工作正常,我可以使用您的迁移和架构从rails控制台创建对象,start_at
如果我使用Time.now
则可以正常工作。