Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用link_to:back时获取循环_Ruby On Rails_Hyperlink - Fatal编程技术网

Ruby on rails 使用link_to:back时获取循环

Ruby on rails 使用link_to:back时获取循环,ruby-on-rails,hyperlink,Ruby On Rails,Hyperlink,我对table课程有以下结构: 搜索页面->结果页面->编辑页面->显示页面 当我从结果页面转到一个特定的课程编辑页面时,我会编辑它,并最终进入显示页面,但当我回击时,我会从显示到编辑,再返回到显示,依此类推 我希望编辑页面返回到结果页面,如果它来自那里 我在两个方面都使用这个: <%= link_to "Back", :back %> 当您在编辑记录后实际更新记录时,您很可能正在通过put请求执行更新操作的重定向。即使您不是,并且如果您正在挑战惯例并从show action进行更

我对table课程有以下结构:

搜索页面->结果页面->编辑页面->显示页面

当我从结果页面转到一个特定的课程编辑页面时,我会编辑它,并最终进入显示页面,但当我回击时,我会从显示到编辑,再返回到显示,依此类推

我希望编辑页面返回到结果页面,如果它来自那里

我在两个方面都使用这个:

<%= link_to "Back", :back %>

当您在编辑记录后实际更新记录时,您很可能正在通过put请求执行更新操作的重定向。即使您不是,并且如果您正在挑战惯例并从show action进行更新,您也在尝试通过get请求导航到post action。如果我理解正确,您希望能够从搜索结果或显示页面进行编辑。您应该定义一种方法,允许您根据需要在会话中存储位置。将它放在应用程序控制器中,所有控制器都可以使用它

# copy this into your application_controller.rb file :
private
def store_location
  session[:return_to] = request.request_uri
end

#copy this to the top of your item_controller.rb file:
before_filter :store_location, :only => [:search, :show]

#replace your <%= link_to "Back", :back %> with
<%= link_to 'back', session[:return_to] -%>
#将其复制到应用程序_controller.rb文件中:
私有的
def存储位置
会话[:return\u to]=request.request\u uri
结束
#将其复制到item_controller.rb文件的顶部:
在\u筛选器:存储\u位置之前,:only=>[:搜索,:显示]
#替换为

当您在编辑记录后实际更新记录时,您很可能正在通过put请求执行更新操作的重定向。即使您不是,并且如果您正在挑战惯例并从show action进行更新,您也在尝试通过get请求导航到post action。如果我理解正确,您希望能够从搜索结果或显示页面进行编辑。您应该定义一种方法,允许您根据需要在会话中存储位置。将它放在应用程序控制器中,所有控制器都可以使用它

# copy this into your application_controller.rb file :
private
def store_location
  session[:return_to] = request.request_uri
end

#copy this to the top of your item_controller.rb file:
before_filter :store_location, :only => [:search, :show]

#replace your <%= link_to "Back", :back %> with
<%= link_to 'back', session[:return_to] -%>
#将其复制到应用程序_controller.rb文件中:
私有的
def存储位置
会话[:return\u to]=request.request\u uri
结束
#将其复制到item_controller.rb文件的顶部:
在\u筛选器:存储\u位置之前,:only=>[:搜索,:显示]
#替换为

我尝试了您解释中较简单的部分,结果相同,可能是做错了什么,因为我对解释xD有点困惑。我希望它像一个堆栈一样工作,所以当我从搜索中出来时,我会编辑,最后出现在显示页面中,然后当我回击时,再回击时,我会出现在搜索结果中。我会删除节目页面上的编辑链接以减少问题。只有一个解释,你需要做我解释的一切。我将对我的答案添加一些评论。:)我不得不调整一些东西,因为就像那样它不起作用。我使用了另一个会话变量,每次我进入搜索页面时都会加载该变量,以检查搜索之前是否成功。它不是很漂亮,但是很有效,谢谢你的帮助^^你想要
request.env['HTTP\u REFERER']
而不是
request.request\u uri
。也可以在
链接
中为(:back)
使用
会话[:return|to]| url| u,以防发生奇怪的事情。我尝试了你解释的简单部分,结果相同,可能是做错了什么,因为我对解释xD有点困惑。我希望它像一个堆栈一样工作,所以当我从搜索中出来时,我会编辑,最后出现在显示页面中,然后当我回击时,再回击时,我会出现在搜索结果中。我会删除节目页面上的编辑链接以减少问题。只有一个解释,你需要做我解释的一切。我将对我的答案添加一些评论。:)我不得不调整一些东西,因为就像那样它不起作用。我使用了另一个会话变量,每次我进入搜索页面时都会加载该变量,以检查搜索之前是否成功。它不是很漂亮,但是很有效,谢谢你的帮助^^你想要
request.env['HTTP\u REFERER']
而不是
request.request\u uri
。也可以在
链接中为(:back)
使用
会话[:return_to]| | url_],以防发生意外情况。