【发布时间】:2012-12-07 07:05:31
【问题描述】:
我正在通过以下方式创建用户:
user = User.create attrs
基本上,它通过添加一个值为 NULL 的“id”字段搞砸了,我猜它的值为 0。所以在第一个用户之后,我得到一个错误,即 id 必须是唯一的。我可以确认 attrs 哈希不包含“id”字段。
这是生成的 SQL:
INSERT INTO `users` (`birthday`, `created_at`, `device_token`, `device_type`, `email`, `fb_id`, `first_name`, `gender`, `last_name`, `location`, `rstatus`, `updated_at`) VALUES ('1992-02-28 00:00:00', '2012-12-06 17:43:43', NULL, 'x86_64', 'adfas023@gmail.com', '12593646569', 'Test', 'male', 'Once', Test, 'Single', '2012-12-06 17:43:43')
发生了什么事?
谢谢
【问题讨论】:
-
您的 'id' 字段应该由迁移创建为自动递增。您可以发布此表的初始
create_table迁移吗? -
哇,你说得对。我没有使用迁移,我手动设置了数据库表,因为我在 Sinatra 上并且我没有 rake 任务
-
所以手动修改id列为自增。
-
是的,我做到了。您要发布答案以便我将其标记为正确吗?我知道这是愚蠢的错误,但它可能对其他人有帮助。
标签: ruby activerecord sinatra