告白:我的方法只使用私有和公开可见性!
我感觉这是一件坏事。但是在Rails中,这似乎并没有成为一个问题。
是否有人在Rails中有一个示例,如果不使用受保护的可见性将是一个很大的错误?
最佳答案
更新-请参阅下面的注释,该注释链接到true explanation of protected
/private
in Ruby。确实,这是我Java时代留下的根深蒂固的偏见。我要回答的唯一重要部分是,不是动作的控制器方法不应为public
(或者至少是您的路线应该对其进行保护)。
单表继承是protected
何时对模型层有所帮助的一个完美示例,因为它是继承中最常见的用途之一。
在控制器层中,在ApplicationController
上定义的辅助方法应该标记为protected
-如果它们是private
,则其他控制器将无法访问它们,但是如果它们是public
,Rails会将它们视为动作。
我个人发现,即使在Rails应用程序中,使用类继承也比许多朋友和同事更多。因为我经常使用它(并且在Java时代结束了),所以我偏爱protected
作为所有辅助方法来给想要扩展该类的任何人(通常是我自己)以自由-除非我真的对一个人感到尴尬,然后将其标记为private
。 :)