是否有快速方法输出ruby方法的可能参数名称?
例如:
def my_method(param1, param2, param3, ...)
# stuff
end
puts get_params("my_method")
会输出如下内容:
param1
param2
param3
...
谢谢!
哦,顺便说一句,我正在接受1.8.7 ......
答案 0 :(得分:4)
怎么样:
class A
def my_method(param1, param2, param3)
# stuff
end
end
A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]]
A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3]
如果你在irb控制台上这样做,就像在你的例子中那样:
>> def my_method(param1, param2, param3)
>> # stuff
>> end
=> nil
>> def get_params(method_name)
>> self.class.instance_method(method_name.to_sym).parameters.collect { |p| p[1] }.each { |name| puts name }
>> end
=> nil
>> get_params(:my_method)
param1
param2
param3
=> [:param1, :param2, :param3]
(从我的irb控制台复制/粘贴。)