创建一个模型观察器,用于创建关联的模型关系

时间:2013-08-31 01:19:37

标签: ruby-on-rails ruby-on-rails-3

我有以下型号:

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"

用户模型/观察者以什么方式实现这一目标?

由于

1 个答案:

答案 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

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

<强>更新 对不起,代码有问题。修正了它。