2013-04-24 212 views
0

我將Rails 2.2.2網站遷移到了Rails 3.1。模式是相同的,但是現在當模型在部分INSERT上調用save()時,我得到一個ActiveRecord錯誤。Rails 3 - ActiveRecord :: StatementInvalid

這導致了一個約束問題,這實際上並不是因爲該列在PostGres中自動遞增,因此它永遠不會爲NULL。

Rails是所有的約定,我認爲它假設'id'列是主鍵。

處理這個問題的最佳方法是什麼?

1)從架構列定義中刪除「NOT NULL」

2)某種方式從內部Rails 3中告訴ActiveRecord.save()忽略這個約束,因爲它是一個自動遞增領域?

謝謝!

回答

1

在模型中做到這一點:

self.primary_key = "your PK column name" 
+0

不是最好的方法,因爲你現在用您的架構完整性搞亂 – Slinky 2013-04-25 14:56:48

相關問題