以下函数允许我构建一个由url
和一些options
组成的查询:
require 'cgi'
require 'openssl'
require 'open-uri'
def function(url, options={})
key = '...'
secret = '...'
parameters = {
:url => url,
:param1 => options[:param1],
:param2 => options[:param2]
}
query = parameters.
sort_by {|s| s[0].to_s }.
select {|s| s[1] }.
map {|s| s.map {|v| CGI::escape(v.to_s) }.join('=') }.
join('&')
secret_key = Digest::MD5.hexdigest(url + secret_keyword)
"https://domain.com/action?key=#{access_key}&secret=#{secret}&#{query}"
end
puts function "www.domain.com"
在最后一行(puts function "www.domain.com"
)中定义了url
- 但如何定义options
?
我尝试过类似的事情:
puts function ("www.domain.com", param1 = "1", param2 = "2")
但这显然是错误的。请原谅我缺乏Ruby知识。希望有人可以帮忙!
答案 0 :(得分:0)
试试这个,
puts function("www.domain.com", { param1: "1", param2: "2"})