我尝试学习新东西并将 Ahoy gem 用于我的私人项目。在进行在线研究时,我遇到了一个使用 Rails 4.2 和 Ahoy 1.6 的 repo,一件事情让我印象深刻。然后我开始用谷歌搜索,似乎这不仅仅是一个单一的回购问题。
class CreateVisits < ActiveRecord::Migration
def change
create_table :visits, id: false do |t|
t.uuid :id, default: nil, primary_key: true
(...)
为便于阅读,省略了其余代码
我错过了什么,还是那些相互排斥的线?(更不用说默认情况下主键为零?)
我在本地运行了几乎相同的迁移(没有 Ahoy gem,更改了表名),我得到了漂亮的 db/schema.rb(乍一看 - 还没有错误),但当然当我尝试创建新对象时,我命中ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint
错误
在我看来,我会写这样的东西来让它工作,还是我在这里错过了一些非常重要的东西,阻止我在数据库中持久化一个对象?
class CreateVisits < ActiveRecord::Migration
def change
create_table :visits do |t|
t.uuid :id, primary_key: true
(...)