0

应用程序有很多测试,问题是只有经过身份验证的用户才能查看它们。因此,当没有时,应用程序会将它们重定向到 sing_in/login_as_guest 页面。例如,用户以访客身份唱歌或登录,之后我想将他们重定向到他们实际要去的页面。但我不知道从哪里开始,这可能吗?你能给我一个从哪里开始的钥匙吗?

4

3 回答 3

0

第 5 章的结尾和第 6、7、8、9 章是您所需要的Rails 教程的分步指南

于 2013-04-25T22:46:27.957 回答
0

这是一个例子:

class UserController < ApplicationController
  def login
    if User.authenticate(params[:user][:email], params[:user][:password])
      referer = params[:referer] || session[:referer] || request.referer
      flash.notice = 'Login succeeded'
      redirect_to referer || root_path
    else
      flash.alert = 'Login failed'
      redirect_to user_login_path
    end        
  end
end

现在,当您想从某个地方重定向回来时,只需将引用路径添加到参数、会话或请求,它就会在成功时重定向回来。

于 2013-04-25T22:49:29.733 回答
0

好的,我找到了简单的解决方案,对我来说效果很好。应用控制器:

    if @current_permission.allow?(params[:controller], params[:action])
        return true
      else
      redirect_to root_url
      session[:was_going]=request.path #here I start session if request causes redirection
      end
  end

此方法返回该请求(如果存在)

 def root_or_request
    if session[:was_going]
    path=session[:was_going]
    session[:was_going] = nil
    return path
    else
    return root_url
    end

  end

而不是在开始会话之后,我只是通过调用这个方法来重定向。

于 2013-04-26T22:35:07.120 回答