将datetime播种到数据库失败

时间:2015-09-03 21:20:42

标签: ruby-on-rails database postgresql

我正在尝试将日期时间植入我的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为零。知道为什么吗?其他所有插入都没有问题。此外,如果我通过表单手动在数据库中插入内容,也可以。

1 个答案:

答案 0 :(得分:0)

只需使用:

starts_at = Time.now

,或者

starts_at = Time.now + 1

更新1:

你可以试试这个:

将迁移更改为:

class AddStartsAtToCpostings < ActiveRecord::Migration
    def change_table
      add_column :cpostings, :starts_at, :datetime
    end
end

使用change_table方法代替change

更新2:

我刚刚在本地测试了您的迁移。您的迁移工作正常,我可以使用您的迁移和架构从rails控制台创建对象,start_at如果我使用Time.now则可以正常工作。