嘿伙计们,我有两个控制器,X和Y:
在X中,我有一个:before_filter用于私有方法,foo。
我在控制器X的顶部也有以下声明。
helper_method:foo
在控制器Y中,我有一个:before_filter用于私有方法,bar。在酒吧,我打电话给foo。但显然这是不允许的,因为我得到一个未定义的局部变量或方法错误。我认为我的:helper_method声明应该允许foo在其他控制器中使用。
一般来说,如何在控制器Y中实现调用foo?有没有办法让foo保持私密?如果没有,如果foo不是私有的话,如何实现(同时遵守良好的设计原则)?
谢谢!
答案 0 :(得分:1)
如果在多个控制器中需要foo
,则应将其作为受保护方法放在基本应用程序控制器中。这将使您可以在需要的地方访问它,同时将其保留在公共界面之外。
或者,您可以将foo
放入模块中并根据需要包含它。
您采取哪种方法取决于您的具体情况。