使用request.url时未定义的拆分方法

时间:2016-11-10 18:56:28

标签: ruby-on-rails parsing url parameters

我正在尝试获取我的网页的当前网址以及随之而来的参数。当我手动输入url时,不会发生未定义的拆分方法错误。我尝试过以下方法:

request.url

request.original_url

request.fullpath

添加

id = request.original_url

并添加此功能

def original_url
  base_url + original_fullpath
end

目前对我有用的是以下内容,但我每次都不能使用相同的网址和参数,因此这种方法以后不会再使用。

   #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

如果我遗失了某些内容,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

有同样的问题。 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