我有这样的情况:我有一个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,