[英]Get referrer URL with parameters in Rails
我有一个带有基本 Rails 脚手架的站点,当用户删除记录时,默认操作是重定向到主页。 但是我希望它返回到用户刚刚查看的列表。 现在我正在使用request.referrer
从技术上讲它正在获取推荐 URL 但不包括参数......
在我的 Rails 日志中,我可以看到“Started GET /books/book_preview?name=Hunger+Games”
但request.referrer
只显示“ https://xxxx/books ”
我也尝试过.original_url
和.original_fullpath
但它们返回记录“/books/HungerGames”的当前页面的路径。 我还尝试了URI(request.referrer).query
以至少获取参数,但引发了错误。
我想使用以下参数获取以前的路径: /books/books_preview?name=Hunger+Games
此列表也是通过 JS 呈现的远程部分。 只有在突出显示它或查看 rails 日志时,您才能在浏览器 URL 栏中看到 URL。 当我使用request.inspect
查看它时,它甚至没有出现在请求中。
在此先感谢您的帮助! 一整天都被困在这上面!
request.referrer
它还会为您提供带有查询参数的推荐网址。
根据此答案(& docs ),您没有从 URL 获取query string
,您需要:
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
这将使您能够返回该书的特定对象,从而无需破解请求路径等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.