5

我想知道以下代码的作用。有什么用request.referer

@board = request.referer['dashboard'] if request.referer
4

2 回答 2

12

request.referer给你以前的网址,或者/如果没有。它通常用于将用户重定向回上一页(链接

更多信息在这里

关于您的问题,'dashboard'如果在request.referer. 看下面的例子:

> str = "hello world!"
 => "hello world!"
> str['hello']
 => "hello"
> str['lo wo']
 => "lo wo"
> str['foo']
 => nil

但是,您不应依赖此方法将用户重定向回来。您可以在控制器中执行此操作:

redirect_to :back
于 2013-08-21T10:30:28.950 回答
1

request.referer 为您提供以前的 URL,或者/如果没有

在图书馆你可以看到:

def referer    
  @env['HTTP_REFERER'] || '/'
end

您可以为此使用referer 技术,但您必须在输入表单而不是提交表单时捕获它。像这样的东西:

<%= hidden_field_tag :referer, (params[:referer] || request.env['HTTP_REFERER']) %>

然后就可以params[:referer]在控制器中使用了redirect back

于 2013-08-21T10:34:36.837 回答