【问题标题】:Helpers, methods and classes organization助手、方法和类组织
【发布时间】:2011-01-24 12:23:18
【问题描述】:

当我的项目长大后,我需要编写一些方法,但是 application_controller 的私有方法和助手并没有提供足够的空间来存储所有扩展。

所以我查看了存储在 /lib 文件夹中的自定义类和方法。

但我还有一些问题,我无法解决:

-我什么时候应该使用“class

x = MyClass.new
x.calculate(array1, array2)

然后我将我的类的方法放入“class

-我什么时候应该使用自定义模块?是否总是需要“包含”或“要求”它们?请告诉我您项目中的模块,您什么时候使用它们?

-如何在控制器中调用助手的方法?我想在ajax响应中使用。例如,我使用辅助方法“users_for_output”,如果有 ajax 调用,我的应用程序应该只将用户呈现为文本,然后使用 javascript 处理它。

【问题讨论】:

    标签: ruby-on-rails class methods organization


    【解决方案1】:

    1) 您不必实例化类来调用静态方法,即

    MyUtil.do_something 
    

    对比

    MyUtil.new.do_something 
    

    在我的项目中,我将这些方法保持为静态。

    2) 当想要跨类共享一组功能时,您可以使用模块。阅读this mixin 与继承的讨论。您将很好地了解何时使用模块。

    2.1) included 方法用于初始化模块变量。如果你没有初始化任何东西,你就不需要使用它。

    3) 如果您想将控制器方法公开为辅助方法,请在 ApplicationController 类中使用 helper_method 调用。

    class ApplicationController < ActionController::Base
      helper_method :user_for_output
    end
    

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 2020-10-29
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 2017-09-17
      • 2021-02-06
      • 2012-07-05
      • 2014-04-20
      相关资源
      最近更新 更多