如果调用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'}}}
。
如何更改此行为?
答案 0 :(得分:3)
在public_method
中,options
已经是哈希。当你致电private_method
时,你将它嵌入另一个哈希。不要这样做。
def public_method options = {}
puts options[:hello]
private_method options
end