Ruby on rails 登录前重定向到页面
现在我有一个登录问题。我希望用户转到上一页,在那里他/她按下了登录按钮。在我现在的代码中,我只是将_重定向到back,这只会将用户发送回一个级别,但我希望它是两个级别。我该怎么做Ruby on rails 登录前重定向到页面,ruby-on-rails,Ruby On Rails,现在我有一个登录问题。我希望用户转到上一页,在那里他/她按下了登录按钮。在我现在的代码中,我只是将_重定向到back,这只会将用户发送回一个级别,但我希望它是两个级别。我该怎么做 class SessionsController < ApplicationController def new end def create user = User.find_by(email: params[:session][:email].downcase)
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
class sessioncontroller
谢谢 最简单的解决方案可能是遵循他们的操作指南。TL;DR-将路径存储在会话中,并在登录后将其用作重定向。其中一个解决方案可能会将url存储在Cookie中,并在登录后重定向到该url
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
如果没有人能给你一个“Rails方式”的答案,你可以用javascript来破解这个问题:谢谢auL5agoi,这将是我最后的手段:)谢谢,这只需要一点编辑就行了。我改为request.referer,因为我在多个地方登录了。谢谢,没有使用Desive,尽管我不确定是否可以使用它,但还是谢谢!Desive并不重要——它是在会话中存储路径的概念。