提问人:Andrew Walker 提问时间:2/9/2023 更新时间:2/9/2023 访问量:33
Ruby 如何使用嵌入的方法参数 调用另一个方法,而不仅仅是把
Ruby how to use method parameter embedded in call to another method other than just puts
问:
在Ruby中,我想在对Net::HTTP new的调用中使用REST动词的输入参数(如'Post'),但我无法弄清楚如何在语句中嵌入该参数。我有一个名为 restVerb 的参数,它可以很好地打印,但不能在 - 我收到 Net::HTTP:Class (NoMethodError) 的请求,所以它显然无法识别语句中的参数值。我可以使用案例语句,但想让它更通用。我做错了什么?puts "Verb is #{restVerb}"
request = Net::HTTP::#{restVerb}.new(uri)
undefined method
我已经尝试了上述语法和其他一些语法,或者我是 Ruby 的新手,所以请对我温柔一点。request = Net::HTTP::restVerb.new(uri)
request = Net::HTTP::$restVerb.new(uri)
答:
1赞
anothermh
2/9/2023
#1
使用 Object.const_get
将字符串转换为实际常量:
klass = Object.const_get("Net::HTTP::#{restVerb}")
=> Net::HTTP::Post
klass.new(uri)
=> #<Net::HTTP::Post POST>
评论
0赞
Andrew Walker
2/9/2023
是的,这奏效了。一百万年后我都不会弄清楚这一点。谢谢
评论