【发布时间】:2012-08-12 04:40:51
【问题描述】:
我有一个用户模型,其中包含电子邮件和大学 ID
我在模型文件中添加了以下行:
validates_uniqueness_of :email, :scope => [:university_id]
但是当我尝试使用相同的电子邮件但不同的 university_id 创建用户时,我收到以下错误消息:
ActiveRecord::RecordNotUnique in UsersController#create
SQLite3::ConstraintException: column email is not unique: INSERT INTO "users" ("name", "email", "password", "created_at", "updated_at", "university_id") VALUES ('my name', 'myusername', 'asdfgh', '2012-08-12 04:31:39.135115', '2012-08-12 04:31:39.135115', 2)
我知道 email 不是唯一的,但是这对 email, university_id 是唯一的,那么为什么我会收到这个异常,我该如何解决呢?
谢谢!
【问题讨论】:
-
检查您的迁移,您是否创建了具有唯一性约束的列?如果你这样做了,你必须删除它——它与 activerecord 验证冲突。
-
就是这样!谢谢你。请将其添加为答案,以便我接受:)
标签: ruby-on-rails-3 validates-uniqueness-of