0

我有以下型号:

User (id,email,name)
Group (id,domain)
GroupUser (id, group_id, user_id)

我想做的是随时创建用户。找到用户的电子邮件域并自动创建 Group 和加入 GroupUser 记录。

执行后:

u = User.new
u.email = 'bob@ge.com'
u.name = "my name"

用户模型/观察者实现这一目标的正确方法是什么?

谢谢

4

1 回答 1

0

您应该创建一个 UserObserverrails 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

我认为这可能会有所帮助。

更新: 对不起,代码有问题。解决它。

于 2013-08-31T01:29:26.600 回答