0

http://ruby.railstutorial.orgのチュートリアルに従っています

制限されたページにアクセスするときにユーザーがログインするように求められ、ログイン後に制限されたページにリダイレクトされるときに、その部分を取得することができました.

ただし、ログイン後、ログアウトして別のユーザーでログインすると、新しいセッションのデフォルトのメイン ページではなく、ページにリダイレクトされます。

私のセッションコントローラー

class SessionsController < ApplicationController

def new

end

def create
  user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
   sign_in user
   redirect_back_or user
  # Sign the user in and redirect to the user's show page.
else
  # Create an error message and re-render the signin form.
  flash.now[:error] = 'Invalid email/password combination'
    render 'new'
end
end
....
end

私のセッションヘルパー

module SessionsHelper
....
def redirect_back_or(default)
  redirect_to(session[:return_to] || default)
  session.delete(:return_to)
end

def store_location
  session[:return_to] = request.fullpath
end

end
4

1 に答える 1

0

session.delete(:return_to)メソッドを作成するために追加

def create
  user = User.find_by_email(params[:session][:email])
  if user && user.authenticate(params[:session][:password])
    sign_in user
    session.delete(:return_to)
    redirect_back_or user
    # Sign the user in and redirect to the user's show page.
  else
    # Create an error message and re-render the signin form.
    flash.now[:error] = 'Invalid email/password combination'
    render 'new'
  end
end
于 2012-07-26T07:34:20.153 に答える