我有一个带有基本rails scaffold的站点,当用户删除记录时,默认操作是重定向到主页。但是我希望它返回到用户刚看的列表。
现在我正在使用request.referrer
技术上获取推荐网址,但不包括参数...
在我的rails日志中,我可以看到“开始GET / books / book_preview?name = Hunger + Games”
但request.referrer
仅显示“https://x.x.x.x/books”
我也尝试了.original_url
和.original_fullpath
,但是那些返回记录“/ books / HungerGames”的当前页面的路径。我还尝试URI(request.referrer).query
至少只是获取参数,但是引发了错误。
我想通过以下参数获取上一个路径:/books/books_preview?name=Hunger+Games
此外此列表是通过JS呈现的远程部分。只有在突出显示URL或查看rails日志时,才能在浏览器URL栏中看到该URL。当我使用request.inspect
查看请求时,它甚至没有显示在请求中。
提前感谢您的帮助!一直坚持这一天!
答案 0 :(得分:0)
根据query string
(& this answer),您无法从网址获取docs,您需要:
request.fullpath #-> book_preview?name=Hunger+Games
-
顺便说一句,如果你将它用作列表页面,它应该没问题。但是,如果您想要提取特定book
条记录,最好使用member
路线:
#config/routes.rb
scope "/books" do
resources :book_preview, only: :show, param: :name #-> url.com/books/book_preview/:name
end
这将使您能够返回该书的特定对象,无需破解请求路径等。
答案 1 :(得分:0)
request.referrer
它还会为您提供带有查询参数的推荐网址。