2016-11-10 74 views
1

我正在尝试获取我的页面的当前网址以及与之相关的参数。当我手动将URL放入时,未定义的拆分方法错误不会发生。我曾尝试以下:使用request.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 

任何帮助或提示,如果我失去了一些东西将不胜感激。

回答

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 
相关问题