0

我有这样的情况:我有用户表,我按类型划分用户:管理员、经理、客户。

只能使用 Organizer 模型( Organizer has_many manager)创建管理器,并且它是在嵌套表单上创建的。

如果有人尝试使用已注册的客户电子邮件创建经理,我想将客户升级为经理。

现在的情况:

当我尝试使用客户的电子邮件创建经理时,它向我显示数据库错误。我可以进行一些验证以将客户类型 -> 更改为 -> 经理,但它仍然想保存经理记录并且显然失败并给我下一个错误。

   ActiveRecord::RecordNotUnique:
   PG::Error: ERROR:  duplicate key value violates unique constraint "index_users_on_email"

我该如何处理这个RIGHT

PS这是我的模型代码:

 class Organizer
 accepts_nested_attributes_for :managers
 has_many :managers
 ___________________

 class Manager < User
 belongs_to :organizer

 ___________________

 class Customer < User
4

1 回答 1

0

您应该首先检查您的用户表中是否存在具有指定电子邮件 ID 的此类记录。

  • 如果是,则将该记录中的角色 col 更新为 Manager,
  • 否则插入一条新记录。
于 2013-04-03T13:22:09.190 回答