0

大家好,我有两个控制器,X 和 Y:

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

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

helper_method :foo

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

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

谢谢!

4

1 回答 1

1

如果您需要foo多个控制器,那么您应该将其作为受保护的方法放入您的基本应用程序控制器中。这将使您可以在需要的地方访问它,同时将其排除在公共界面之外。

或者,您可以放入foo一个模块并根据需要包含它。

您采用哪种方法取决于您的具体情况。

于 2011-06-02T03:21:28.117 回答