我有一个带有以下GET方法的Sinatra应用程序,它接受传入的URL:
get %r{/html/(.+)} do
url = params[:captures] # stores url => http://www.example.com
gethtml(url)
end
但是,当调用gethtml(url)
时,会引发错误Sinatra no implicit conversion of Array into String
。
gethtml
接受http://example.com
等输入。
我知道这是一个数据类型转换问题,我尝试调用to_s
但它没有用。
任何帮助都将不胜感激。
答案 0 :(得分:4)
params[:captures]
返回一个字符串数组,而get_html
最有可能接受一个字符串作为字符串。
由于您要使用匹配的第一个组作为URL:
get %r|/html/(.+)| do
get_html params[:captures].first
end
这与the Routes section of the README
中与正则表达式的匹配示例一致。