0

Rails 2.2.2 のサイトを Rails 3.1 に移行しました。スキーマは同じですが、モデルが部分的な INSERT で save() を呼び出すと、ActiveRecord エラーが発生します。

これは制約の問題を引き起こしていますが、これは列が PostGres で自動インクリメントされているためではなく、NULL になることはありません。

Railsはすべての慣例であり、「id」列が主キーであると想定していると思いました。

これを処理する最良の方法は何ですか?

1)スキーマ列の定義から「NOT NULL」を削除します

2)自動インクリメント フィールドであるため、Rails 3 内から ActiveRecord.save() にこの制約を無視するように指示する方法はありますか?

ありがとう!

4

1 に答える 1

1

モデルでこれを行います:

self.primary_key = "your PK column name"
于 2013-04-24T17:53:35.307 に答える