每次,我的schema.rb文件中都有一个我的事件对象列(event-calendar gem)
t.integer "id", :null => false
当然,每当我想创建一个事件时,我都会收到错误“列中的空值”id“违反了非空约束”,因为这个。我试过这个解决方案ActiveRecord::StatementInvalid: PG::Error: ERROR: null value in column "id" violates not-null constraint,但每次都会出现!我想知道为什么这个专栏出现在这里,我真的不明白......
有什么想法吗?
答案 0 :(得分:2)
创建事件模型时,听起来好像添加了一个id字段。这不是必需的,因为rails会自动创建此字段。架构中的事件模型应如下所示:
create_table "events", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
我会回滚迁移,假设这是最近的迁移:
rake db:rollback
然后更新迁移文件并从create_table块中删除id:
class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :name
t.timestamps
end
end
end
然后重新运行迁移。