我有这样的情况:我有用户表,我按类型划分用户:管理员,经理,客户。
只能使用管理器模型(管理器has_many管理器)创建管理器,并且它是在嵌套表单上创建的。
如果有人试图使用已注册的客户电子邮件创建经理,我想将客户升级为经理。
现状:
当我尝试使用客户的电子邮件创建Manager时,它显示数据库错误。我可以进行一些验证来更改客户类型 - >到 - >经理,但它仍然想保存经理记录,显然失败并给我下一个错误。
ActiveRecord::RecordNotUnique:
PG::Error: ERROR: duplicate key value violates unique constraint "index_users_on_email"
我如何处理 RIGHT ?
P.S。这是我的模型代码:
class Organizer
accepts_nested_attributes_for :managers
has_many :managers
___________________
class Manager < User
belongs_to :organizer
___________________
class Customer < User
答案 0 :(得分:0)
您应首先检查您的Users表中是否存在具有指定电子邮件ID的记录。