【问题标题】:Where to place business-logic classes在哪里放置业务逻辑类
【发布时间】:2011-08-02 10:36:25
【问题描述】:

例如,我有一个从网站收集数据并返回对象集合的类。该数据不存储在数据库中,因此它不是模型。这个类被许多控制器使用,所以它不是控制器。

我可以在哪里放置这些文件?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我通常将这些类放在 lib 目录中。而不仅仅是需要它们。

    【讨论】:

    • 你会想要使用 require_dependency。否则,您将不得不重新启动服务器以获取更改。
    【解决方案2】:

    应该进入 lib 文件夹!可能是模块!

    【讨论】:

      【解决方案3】:

      它是一个值对象并且应该在整个站点中保持不变,并且您的控制器或其他组件应该使用它来自模型的引用,类引用应该在模型中并且它自己的类可以被赋予价值对象

      【讨论】:

        【解决方案4】:

        我会将它们放在应用程序/模型中。那么您就不必处理自动加载路径或 require 与 require_dependency。

        仅仅因为一个类没有持久化到您的数据库中并不意味着它不是您的数据模型的一部分。将它们放入 lib 表明它们是某种实用程序类,与您的应用没有太大关系。

        Rails 混淆了模型和持久性。我认为将一些业务逻辑与持久实体一起使用是很好的,但没有理由不能在 ActiveRecord 对象之外拥有模型逻辑。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-02
          • 1970-01-01
          • 1970-01-01
          • 2013-03-04
          • 2013-09-04
          • 1970-01-01
          相关资源
          最近更新 更多