【问题标题】:sharing private methods across controllers跨控制器共享私有方法
【发布时间】:2011-06-02 03:13:17
【问题描述】:

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

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

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

helper_method :foo

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

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

谢谢!

【问题讨论】:

    标签: ruby-on-rails controller helpermethods


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2015-02-05
      相关资源
      最近更新 更多