从提取物 URL 中获取查询字符串(如果存在)
Get query string from extract URL if exists
我正在尝试从传递的 URL 的查询字符串中获取变量 prop
的值,类似于 this 线程中的绅士所做的。
如果 URL 中有查询字符串,它会工作,但如果没有,我会得到
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
可以使用 params[]
哈希访问 URL 中查询字符串中的键,即使 URL 不存在于应用程序本身中。这也是rails与外界沟通的便捷方式。请注意,rails 在使用 params[]
散列时平等对待所有 HTTP 动词。
用法:puts params[:your_key]
我正在尝试从传递的 URL 的查询字符串中获取变量 prop
的值,类似于 this 线程中的绅士所做的。
如果 URL 中有查询字符串,它会工作,但如果没有,我会得到
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
可以使用 params[]
哈希访问 URL 中查询字符串中的键,即使 URL 不存在于应用程序本身中。这也是rails与外界沟通的便捷方式。请注意,rails 在使用 params[]
散列时平等对待所有 HTTP 动词。
用法:puts params[:your_key]