现在我遇到登录问题。我希望用户转到他/她按下登录按钮的上一页。在我的代码中,我现在只有redirect_to返回,它只是将用户返回一个级别,但我希望它是两个级别。我该怎么做?
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to back
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
end
谢谢!
答案 0 :(得分:1)
最简单的解决方案是在他们的操作方法中遵循outline that the devise gem provides。 TL; DR - 将路径存储在会话中,并在登录后将其用作重定向。
答案 1 :(得分:1)
其中一个解决方案可能会将网址存储在Cookie中,并在登录后重定向到该网址
cookies[:return_to] = {
value: request.fullpath,
expires: 1.hour.from_now
}
redirect_to sign_in_path
登录后,请致电
path = cookies[:return_to]
cookies.delete(:return_to)
redirect_to path