如果 public_method
被调用:
public_method hello: 'world'
def public_method options = {}
puts options[:hello]
private_method options: options
end
private
def private_method options = {}
puts options[:hello]
end
它将'world
和转发到private_method
。
该方法不会像预期的那样接收 {:options=>{:hello=>'world'}}
。相反,它接收 {:options=>{:options=>{:hello=>'world'}}}
。
我怎样才能改变这种行为?
最佳答案
在public_method
中,options
已经是一个Hash。当您调用 private_method
时,您将其嵌入到另一个哈希中。不要这样做。
def public_method options = {}
puts options[:hello]
private_method options
end
关于Ruby:在方法之间传递选项参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45839930/