如何在更改用户角色时避免DB异常



我有这样的情况:我有一个Users表,我按类型划分用户:Admins, Managers, Customer。

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

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

现状:

当我试图用客户的电子邮件创建经理时,它显示我数据库错误。我可以做一些验证来改变客户类型->到->经理,但它仍然要保存经理记录,显然失败并给我下一个错误。

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

如何处理这个 ?

注:这是我的模型代码:

 class Organizer
 accepts_nested_attributes_for :managers
 has_many :managers
 ___________________
 class Manager < User
 belongs_to :organizer
 ___________________
 class Customer < User

您应该首先检查Users表中是否存在这样一个带有指定email ID的记录。

  • 如果是,将该记录中的角色编号更新为Manager,

最新更新