0

私は次のモデルを持っています:

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"

これを実現するためのユーザーモデル/オブザーバーの正しい方法は何ですか?

ありがとう

4

1 に答える 1

0

You should create a UserObserver rails g observer UserObserver and define an action:

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

I think this might be helpful.

UPDATE: Sorry, there was a problem with code. Fixed it.

于 2013-08-31T01:29:26.600 に答える