0

在我的应用程序中,我使用 devise devise_invitable gem 发送邀请。在用户接受邀请后,他被添加为系统中的成员。我面临的错误是,即使出现错误并且用户单击注册按钮,他也会被添加为系统中的成员。我想首先检查注册用户是否应该添加为系统中的成员。我在 users/invitation_controller.rb 文件中添加了以下代码:

  def update
    user=User.find_by_invitation_token(params[:user][:invitation_token])
    @accepted_invitation = Invitation.find_by_invitation_token(params[:user][:invitation_token])
    session[:case_id] = @accepted_invitation.case_id
    @member = Member.create(:user_id => user.id, :case_id => @accepted_invitation.case_id, :user_type_id => @accepted_invitation.user_type_id)
    super
  end
4

1 回答 1

0

您可以使用回调来执行此操作,但不是最漂亮的方法。

before_save :add_as_member

def add_as_member
  if self.invitation_accepted_at_changed?
    #Member creation code
  end
end
于 2013-11-07T15:50:58.370 回答