【问题标题】:Get referrer URL with parameters in Rails在 Rails 中获取带有参数的引荐来源网址
【发布时间】:2016-04-21 17:25:25
【问题描述】:

我有一个带有基本 rails 脚手架的站点,当用户删除记录时,默认操作是重定向到主页。但是我希望它返回到用户刚刚查看的列表。 现在我正在使用request.referrer,它在技术上获取引荐 URL,但不包含参数...
在我的 Rails 日志中,我可以看到“Started 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 查看它时,它甚至没有出现在请求中。

提前感谢您的帮助!整天卡在这上面!

【问题讨论】:

  • 你好..你解决过这个问题吗?
  • 我最终所做的只是将查询字符串保存到一个实例 var,然后将其传递到参数中以进行下一步操作:\ 不是一个干净的解决方案,但它可以工作

标签: ruby-on-rails httprequest


【解决方案1】:
request.referrer

它还会为您提供带有查询参数的推荐网址。

【讨论】:

    【解决方案2】:

    根据this answer (&docs),您没有从 URL 中获取 query string,您需要:

    request.fullpath #-> book_preview?name=Hunger+Games
    

    --

    顺便说一句,如果您将其用作 lists 页面,应该没问题。但是,如果您想提取特定的 book 记录,最好使用 member 路由:

    #config/routes.rb
    scope "/books" do
       resources :book_preview, only: :show, param: :name #-> url.com/books/book_preview/:name
    end
    

    这将使您能够返回该书的特定对象,无需破解请求路径等。

    【讨论】:

    • request.fullpath 给出了当前页面的完整路径,而不是上一个。并且无法将其菊花链到request.referer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多