2013-04-24 214 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

相关问题