簡體   English   中英

schema.rb中的ID列

[英]Id column in schema.rb

每次,我的schema.rb文件中都會有一個列用於事件對象(事件日歷gem)

t.integer  "id", :null => false

因此,當然,每次我想創建一個事件時,都會有一個錯誤“因此,在“ id”列中的空值違反了非空約束”。 我嘗試了此解決方案ActiveRecord :: StatementInvalid:PG :: Error:錯誤:“ id”列中的null值違反了非null約束,但每次都會出現! 我想知道為什么此列出現在這里,我真的不明白...

任何想法 ?

創建事件模型時,聽起來好像您添加了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

然后重新運行遷移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM