0

Railsでdevise_invitableを使用していますが、助けが必要です。招待を受け入れた後にユーザーをログインさせたい。これが私のInvitationsControllerです

class InvitationsController < Devise::InvitationsController
  def update
    if User.accept_invitation!(user_params)
      # log in user here
      redirect_to dashboard_show_path, notice: t('invitaion.accepted')
    else
      redirect_to root_path, error: t('invitation.not_accepted')
    end
  end

  private
  def user_params
    params.require(:user).permit(:invitation_token, :password, :password_confirmation)
  end
end

あなたはコードでコメントを見ることができます

# log in user here

ここで、招待を受け入れたユーザーにログインしたいと思います。

ありがとう。

4

1 に答える 1

1

あなたが探している方法はsign_in、これを試してみてください:

def update
  if User.accept_invitation!(user_params)
    sign_in(params[:user])
    redirect_to dashboard_show_path, notice: t('invitaion.accepted')
  else
    redirect_to root_path, error: t('invitation.not_accepted')
  end
end

ただし、デフォルトでは、devise_invitableは、ユーザーが招待を受け入れた後にサインインすることに注意してください。デフォルトの機能を使用する場合は、メソッドを呼び出すか、更新アクションをまったく実装しない場合は、ここでデフォルトの更新アクションを参照してください。super

于 2013-02-06T17:51:43.310 に答える