我将Rails 2.2.2站点迁移到Rails 3.1。模式是相同的,但现在当模型在部分INSERT上调用save()时,我得到一个ActiveRecord错误。
这导致了一个约束问题,这实际上不是因为该列在PostGres中自动递增,因此它永远不会为NULL。
Rails是所有约定,我认为它假定'id'列是主键。
处理此问题的最佳方法是什么?
1)从架构列定义中删除“NOT NULL”
2)从Rails 3内部以某种方式告诉ActiveRecord.save()忽略这个约束,因为它是一个自动增量字段?
谢谢!
答案 0 :(得分:1)
在你的模型中这样做:
self.primary_key = "your PK column name"