代码之家  ›  专栏  ›  技术社区  ›  Darren Greaves

我的非型号/非控制器代码应该在哪里?

  •  13
  • Darren Greaves  · 技术社区  · 17 年前

    我已经编写了一个rails应用程序,它遵循常规目录结构(模型中的模型代码,控制器中的控制器代码)。

    但我现在正在开发一个新特性,为此我编写了一些(我称之为“服务”代码)。

    我不相信新代码属于模型,因为它没有建模任何对象(它也没有直接与任何单个对象相关)。 我当然不认为它属于控制器,因为它不是表示逻辑。

    因此,我创建了一个“app/services”目录并将其放在那里。 我还创建了一个“test/services”目录,在其中放置了我的测试。


    现在我希望有办法让rake捡起它们,但这是我做错了什么的警告标志吗?
    是否有其他地方的代码应该居住或我不知何故没有做的事情“轨道的方式”?

    这是其中之一吗?

    2 回复  |  直到 17 年前
        1
  •  22
  •   Gareth    17 年前

    这就是“lib”文件夹的用途。

    lib文件夹位于自动查找路径中,因此您可以

    class MyFoo
    end
    

    在里面 lib/my_foo.rb 然后只要打个电话

    MyFoo.new
    

    require 'my_foo'

        2
  •  1
  •   Cameron Price    17 年前

    /lib绝对是个好去处。

    另一个地方是在config下的initializers目录中,这取决于您的操作。你也可以考虑把整个事情变成一个插件,但是如果它是少量的功能,它可能不值得。

    推荐文章