我试图从传递的URL中获取变量prop
的值,类似于this线程中的绅士所做的。
如果网址中有查询字符串,但是如果我没有
CGI.parse undefined method 'split' for nil:NilClass
错误。我做了研究,问题是因为没有要拆分的查询。
所以我的问题是如何测试是否存在任何查询字符串,然后通过CGI.parse运行它以查看prop
查询字符串是否是其中之一?我想我可以通过Regex做到这一点,但我希望有一个Rails解决方案。
任何帮助都将不胜感激。
感谢名单
代码: 我还试图获取URL引荐来源的域名。这就是我在那里有变量的原因。
url = request.env['HTTP_REFERER']
encoded_url = URI.encode(url.to_s)
parse = URI.parse(encoded_url)
domain = parse.host
puts domain
params = CGI.parse(parse.query)
puts params['prop'].first
更新 我通过添加附加代码得到了错误消失。但我仍然想知道是否有更好的Rails解决方案。我还是Rails的新手,所以我想确保我正确地做到了。
if encoded_url.include? "?prop"
params = CGI.parse(parse.query)
puts params['prop'].first
end
答案 0 :(得分:2)
即使URL本身不存在,也可以使用params[]
哈希访问URL中查询字符串中的键。这也是轨道与外界通信的便利方式。请注意,当使用params[]
哈希时,rails会平等地处理所有HTTP谓词
用法:puts params[:your_key]