登录后重定向到原始目标

时间:2011-07-22 20:52:45

标签: ruby-on-rails

Rails 2.3.11

如果用户在未登录时尝试转到/照片,则会将其定向到[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

* ”ed行是无法正常工作的行。当我检查以查看参数时,:route不在其中,因此参数不会与登录帖一起传入。任何人都可以向我解释为什么它不是,我怎么能解决它?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

session[:return_to] ||= request.referer
相关问题