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 に答える