作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在开发一个新的 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 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/
我是一名优秀的程序员,十分优秀!