【问题标题】:Undefined split method while using request.url使用 request.url 时未定义的拆分方法
【发布时间】:2016-11-10 18:56:27
【问题描述】:

我正在尝试获取我的页面的当前 url 和附带的参数。当我手动将url放入时,未定义拆分方法错误不会发生。我尝试了以下方法:

request.url

request.original_url

request.fullpath

添加

id = request.original_url

并添加此功能

def original_url
  base_url + original_fullpath
end

目前对我有用的方法如下,但我不能每次都使用相同的 url 和参数,因此此方法以后将无法使用。

   #parse current url
    #what I would like below in comment
    #id = request.original_url
    url =   "http://127.0.0.1:3000/reviews/new?id=2"
    uri    = URI.parse(url)
    params = CGI.parse(uri.query)
    id     = params['id'].first

如果我遗漏了什么,任何帮助或提示将不胜感激。

【问题讨论】:

    标签: ruby-on-rails parsing url parameters


    【解决方案1】:

    有同样的问题。 url中缺少查询参数是导致它的原因。

    url = "http://127.0.0.1:3000/reviews/new" # no query params
    uri = URI.parse(url)
    query = uri.query # nil
    params = CGI.parse(query) # Undefined split Exception
    

    这样就解决了:

    uri = URI.parse(url)
    if uri.query
      params = CGI.parse(uri.query)
      id = params['id'].first
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多