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