【问题标题】:Uniqueness of a pair of attributes not working一对属性的唯一性不起作用
【发布时间】: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


【解决方案1】:

如果您的数据库中有唯一性约束,它可能与 ActiveRecord 的唯一性约束冲突。检查您的迁移并删除约束(如果存在)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2010-09-11
    • 1970-01-01
    相关资源
    最近更新 更多