gpt4 book ai didi

ruby-on-rails - rails 错误 : No HTTP_REFERER was set in the request to this action

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:55 30 4
gpt4 key购买 nike

我正在开发一个新的 Rails 应用程序。但发现错误:

ActionController::RedirectBackError in UsersController#show

No HTTP_REFERER was set in the request to this action, so redirect_to :back could not be called successfully. If this is a test, make sure to specify request.env["HTTP_REFERER"].

我的代码:

rescue_from CanCan::AccessDenied do |exception|
redirect_to :back
end

我对这个错误有一些疑问:

  • 什么是 HTTP_REFERER?
  • 为什么重定向到后面会触发这个错误?

谁有好主意?

最佳答案

什么是 HTTP_REFERER?

HTTP referer 是一个 HTTP header 字段,用于标识链接到所请求资源的网页地址(即 URI 或 IRI)。这是由 ActionController::Request 对象设置的。

为什么重定向到后面会触发这个错误?

这通常在未设置 request.env["HTTP_REFERER"] 时发生。 (我也想知道在什么情况下设置和不设置)

你可以引用这个answer解决您的问题。

(或者)我非常愿意为访问被拒绝定义一个自定义页面并重定向到它而不是redirecting :back(我认为这是个坏主意)

例如来自 cancan gem 文档,

rescue_from CanCan::AccessDenied do |exception|
render :file => "#{Rails.root}/public/403.html", :status => 403, :layout => false
## to avoid deprecation warnings with Rails 3.2.x (and incidentally using Ruby 1.9.3 hash syntax)
## this render call should be:
# render file: "#{Rails.root}/public/403", formats: [:html], status: 403, layout: false
end

希望这对您有所帮助!

关于ruby-on-rails - rails 错误 : No HTTP_REFERER was set in the request to this action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917685/

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