什么" include_all"表示在respond_to_missing?

时间:2015-01-27 15:58:19

标签: ruby metaprogramming

good rule of thumb在覆盖respond_to_missing?时为类定义method_missing

然而,我看到respond_to_missing?接受2个参数:方法名称和include_all。我试图找到第二个参数实际意义的解释(为什么它设置为假),但无法找到任何东西。甚至文档都没有提到它。我尝试过使用该方法来查看参数是否具有返回值的某些含义,但无法找到。有人可以解释为什么include_all存在吗?

1 个答案:

答案 0 :(得分:0)

来自this post's评论:

  

嗯...所以你说,即使目前无法将丢失的方法设为私有,你可以使用respond_to_missing吗?通过不宣传你可能想要私有的遗漏方法的存在来部分地模仿这种行为?

如果您调用方法respond_to?(:might_be_private_method, true),那么在方法respond_to_missing?(method_name, include_all)中,您将获得include_all true,您可以从中进一步模仿方法范围。

我不认为还有其他特殊行为。