2011-06-02 19 views
0

嗨,我有两个控制器,X和Y:在控制器上共享私有方法

在X中,我有一个:before_filter用于私有方法foo。

我也有在控制器X的顶部下面的语句

是helper_method:富

在控制器Y,我有一个:为的before_filter私有方法,酒吧。在酒吧里,我叫foo。但显然这是不允许的,因为我得到一个未定义的局部变量或方法错误。我会认为我的:helper_method声明应该允许foo在其他控制器中使用。

一般来说,我怎样才能在控制器Y中调用foo?有没有办法保持私密性?如果不是,如果foo不是私人的,如何实现(同时遵守良好的设计原则)?

谢谢!

回答

1

如果您在多个控制器中需要foo,那么您应该将其作为受保护的方法放在基本应用程序控制器中。这会让您在需要的地方访问它,同时保持它不在公共界面中。

或者,您可以将foo放在模块中并根据需要包含它。

你采取的方法取决于你的具体情况。

相关问题