Ruby on rails 使用request.url时未定义拆分方法
我正在尝试获取我的页面的当前url以及与之相关的参数。当我手动输入url时,未定义的拆分方法错误不会发生。我尝试了以下方法: request.url request.original\u url 请求完整路径 加入Ruby on rails 使用request.url时未定义拆分方法,ruby-on-rails,parsing,url,parameters,Ruby On Rails,Parsing,Url,Parameters,我正在尝试获取我的页面的当前url以及与之相关的参数。当我手动输入url时,未定义的拆分方法错误不会发生。我尝试了以下方法: request.url request.original\u url 请求完整路径 加入 id = request.original_url 并增加了这个功能 def original_url base_url + original_fullpath end 下面是目前对我有效的方法,但我不能每次都使用相同的url和参数,因此此方法以后将不起作用 #pars
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
如果我遗漏了什么,请提供任何帮助或提示。也有同样的问题。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
有同样的问题。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