0

私はDevise Invitableを使用しています.SOでいくつかの回答を見つけました(ここに1つがあります).after_invite_path_for(resource)Users::InvitationsController < DeviseController

私はそれを試しましたが、まだうまくいきません。

これは私のコントローラーです:

class Users::InvitationsController < Devise::InvitationsController

   def after_invite_path_for(resource)
     root_path
   end

   def create
      @member ||= Member.find_or_create_by(email: params[:user][:email], first_name: get_first_name(params[:user][:full_name]), last_name: get_last_name(params[:user][:full_name]), bio: params[:user][:bio], gender: params[:user][:gender])
      @membership ||= Membership.find_or_create_by(member: @member, family_tree: current_user.family_tree, inviter: current_user, relation: params[:user][:invitation_relation])

      if @user_exists ||= invited_user_exists(params[:email])

      else
        super
      end

    end
end

ブロック内の のredirect_to root_path直後に追加しようとすると、リダイレクトが既に呼び出されているというエラーがスローされます。superelse

ここで作成アクションのソースを確認すると、リダイレクトが表示されるため、それは本当だと思います。

これはサーバーログです:

Started POST "/users/invitation" for 127.0.0.1 at 2015-12-02 03:58:57 -0500
Processing by Users::InvitationsController#create as HTML
  Rendered users/mailer/invitation_instructions.html.erb within layouts/mail (1.2ms)

  # truncated for brevity

  Rendered users/invitations/create.html.erb within layouts/devise (0.6ms)
  Rendered shared/_navbar.html.erb (1424.4ms)
Completed 200 OK in 9221ms (Views: 4732.1ms | ActiveRecord: 102.0ms)

どこにもリダイレクトしないことに注意してください。

4

1 に答える 1