gpt4 book ai didi

ruby-on-rails - 登录后 Rails 不重定向

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:04 25 4
gpt4 key购买 nike

我正在通过 Hartl 的教程学习 Rails,但我可以获得第 9.2.3 章 Link上类

本节之前的所有内容在本节之前都运行良好,但是在到达这里之后,如果我访问/users/1/edit 并使用不同或相同的用户登录,它会重定向回用户页面而不是编辑页面.

session 助手:

def redirect_back_or(default)
redirect_to(session[:return_to] || default)
session.delete(:return_to)
end

def store_location
session[:return_to] = request.fullpath
end

before_filter 的用户 Controller 方法

private

def signed_in_user
unless signed_in?
store_location
redirect_to signin_path, notice: "Please sign in."
end
end

def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user?(@user)
end

在用户 Controller 中的过滤器之前

before_filter :signed_in_user,only:[:edit,:update,:index]
before_filter :correct_user, only:[:edit,:update]

到目前为止我的代码 Github

最佳答案

您错过了在 SessionsController 创建中调用 redirect_back_or 用户而不是 redirect_to 的方法:

  def create
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination' # Not quite right!
render 'new'
end
end

我在页面底部的debug info中添加session发现,登录成功后return_to还在:

{"session_id"=>"4dcc1baaf651aaab953026902b32f805", "_csrf_token"=>"0YkP+yd/DDuInX4kIBkjwbzxV1GK0oYBDAXEiWnHLGs=", "return_to"=>"/users/1/edit"}

关于ruby-on-rails - 登录后 Rails 不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com