尝试通过以下方式动态创建对象和调用方法
Object.const_get(class_name).new.send(method_name,parameters_array)
它在以下情况下工作得很好
Object.const_get(RandomClass).new.send(i_take_arguments,[10.0])
但是抛出错误数量的1对2的参数
Object.const_get(RandomClass).new.send(i_take_multiple_arguments,[25.0,26.0])
定义的随机类是
class RandomClass
def i_am_method_one
puts "I am method 1"
end
def i_take_arguments(a)
puts "the argument passed is #{a}"
end
def i_take_multiple_arguments(b,c)
puts "the arguments passed are #{b} and #{c}"
end
end
有没有人可以教我如何动态地向ruby方法发送多个参数?
发布于 2012-12-10 13:53:25
send("i_take_multiple_arguments", *[25.0,26.0]) #Where star is the "splat" operator
或
send(:i_take_multiple_arguments, 25.0, 26.0)
https://stackoverflow.com/questions/13795627
复制相似问题