Ruby如何使用方法参数嵌入到调用另一个方法中而不仅仅是放置

1cosmwyk  于 2023-02-12  发布在  Ruby
关注(0)|答案(1)|浏览(89)

在Ruby中,我想在对Net::HTTP new的调用中使用REST动词的输入参数(如'Post'),但我不知道如何将该参数嵌入语句中。我有一个名为restVerb的参数,它在puts "Verb is #{restVerb}"中打印良好,但在request = Net::HTTP::#{restVerb}.new(uri)中打印不好-我得到undefined method request' for Net::HTTP:Class(NoMethodError)',因此它显然无法识别语句中的参数值。我可以使用case语句,但希望使其更通用。我做错了什么?
我已经尝试了上面的语法和其他一些语法,如request = Net::HTTP::restVerb.new(uri)request = Net::HTTP::$restVerb.new(uri)。我是Ruby的新手,所以请对我温柔一些。

vyswwuz2

vyswwuz21#

使用Object.const_get将字符串转换为实际常量:

klass = Object.const_get("Net::HTTP::#{restVerb}")
=> Net::HTTP::Post

klass.new(uri)
=> #<Net::HTTP::Post POST>

相关问题