Rails 3 - ActiveRecord :: StatementInvalid

时间:2013-04-24 14:32:25

标签: postgresql activerecord ruby-on-rails-3.1

我将Rails 2.2.2站点迁移到Rails 3.1。模式是相同的,但现在当模型在部分INSERT上调用save()时,我得到一个ActiveRecord错误。

这导致了一个约束问题,这实际上不是因为该列在PostGres中自动递增,因此它永远不会为NULL。

Rails是所有约定,我认为它假定'id'列是主键。

处理此问题的最佳方法是什么?

1)从架构列定义中删除“NOT NULL”

2)从Rails 3内部以某种方式告诉ActiveRecord.save()忽略这个约束,因为它是一个自动增量字段?

谢谢!

1 个答案:

答案 0 :(得分:1)

在你的模型中这样做:

self.primary_key = "your PK column name"