我有以下型号:
User (id,email,name)
Group (id,domain)
GroupUser (id, group_id, user_id)
我想做的是随时创建用户。找到用户的电子邮件域并自动创建组和加入GroupUser记录。
表演后:
u = User.new
u.email = 'bob@ge.com'
u.name = "my name"
用户模型/观察者以什么方式实现这一目标?
由于
答案 0 :(得分:0)
您应该创建UserObserver rails g observer UserObserver
并定义操作:
def after_create(user)
domain = user.email.split("@").last
if (group = Group.where(domain: domain)).any?
GroupUser.create(group.id, user.id)
else
group = Group.create(domain)
GroupUser.create(group.id, user.id)
end
end
我认为这可能会有所帮助。
<强>更新强> 对不起,代码有问题。修正了它。