0
我一直在這個問題上停留太久了。RoR設計 - 創建用戶後創建相關的新對象
第一次使用Devise,我嘗試將新用戶註冊與組的自動加入相結合,基於params中存在的邀請令牌。 (例如,通過電子郵件邀請加入羣組,因此當他們關注註冊鏈接並完成註冊時,他們自動成爲受邀羣組的成員)
以下教程,我已經能夠自定義Devise控制器,但是我不能使用新用戶對象中的ID創建組成員資格 - 成功創建成員,並添加了group_id,但user_id始終保持爲零。
下面是我的定製設計的控制器,以及相關機型:
class Users::RegistrationsController < Devise::RegistrationsController
def create
super do
newUser = User.create(resource_params)
token = params[:invite_token]
if token != nil
group = Invite.find_by_token(token).group
newUser.groups.push(group)
Membership.create(:user_id => newUser.id, :group_id => group.id)
end
end
end
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
has_many :memberships
has_many :groups, :through => :memberships
has_many :gifts
has_many :posts
has_many :votes
has_many :invitations, :class_name => 'Invite', :foreign_key => 'recipient_id'
has_many :sent_invites, :class_name => 'Invite', :foreign_key => 'sender_id'
end
class Group < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
has_many :invites
has_many :gifts
has_many :posts
has_one :user
end
有誰知道我如何能夠成功地創建成員對象,同時含有USER_ID和GROUP_ID,用戶創建後?
謝謝大家提前,
真棒,太感謝你了! –