所以我试图让用户在点击“登录”之前返回他们正在查看的页面
这是我在用户应用程序控制器中得到的:
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
这就是我的会话控制器中的内容:
def new
@user_session = UserSession.new
session[:return_to] = request.referer
end
end
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_back_or_default(home_path)
else
render :action => :new
end
end
这在大多数情况下都可以正常工作,但是如果用户在注册到站点后立即登录,他们将被重定向到空白页面。我想这是“创建”操作,因为它是进入新用户会话之前的最后一个操作。
所以我尝试了这个:
def new
@user_session = UserSession.new
unless request.referer == join_path
session[:return_to] = request.referer
end
end
这试图在我登录后将我带回登录页面。
我真正想做的是让用户在第一次登录时看到他们的个人资料。
这不会给我用户 ID 并引发路由错误
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_back_or_default(user_path(current_user))
else
render :action => :new
end
end
有人经历过这些重定向杂技吗?我似乎无法让它工作。如果有帮助,我正在使用 authlogic。