ログイン後に元の宛先にリダイレクトする

ruby-on-rails
ログイン後に元の宛先にリダイレクトする

Rails 2.3.11

ユーザーがログインしていないときに/ photosにアクセスしようとすると、 `[site] / admin / login?route = [site] / photos`にリダイレクトされます。 彼らがログインした後、デフォルトのホームページの代わりに「ルート」で定義されたものに送ってほしい。

  • /app/controllers/admin_controller.rb内:*

def login
    if session[:user_id] #already logged in
      redirect_to ''
    @destination = request.url
    end
    if request.post?
      if [authentication code]
        if user.activated? #check to see whether the user has activated their account
          session[:user_id] = user.id
          if params[:route] # ********
            redirect_to "#{params[:route]}"
          else
            redirect_to :controller => 'home'
          end
        else
          flash.now[:notice] = "Your account hasn't been activated yet.  Check your emails!"
        end
      else
        flash.now[:notice] = "Invalid email/password combination"
      end
    end
  end

*」の行は、正しく機能していないものです。 パラメーターを確認するとき、:routeはそれらの中にないので、引数はログインポストで渡されていません。 なぜそうでないのか、どうすれば修正できるのか、誰にでも説明できますか?

ありがとうございました!

  6  0


ベストアンサー

次のようなことができます。

session[:return_to] ||= request.referer

3


タイトルとURLをコピーしました