Rails:模型依赖类位置的最佳实践?

4
我有一个正在进行得相当顺利的Rails应用程序,但是由于我一个人在做,所以某些可怜的家伙最终会看到这个并说:“你到底在想什么?你为什么要把它放在这里?!?”

那个可怜的人会期望在哪里看到一系列仅被单个模型类使用的类?显然,我可以将其放入the_model.rb中,以及TheModel类,但这可能会扩展到计划之外的两个类...

我考虑过lib,但它不需要混乱每个人的视图....

谢谢。

我的前任感谢你。


你是不是想说,你的继任者感谢我? - Jim Puls
2个回答

4

the_model.rb 中保留它们,直到您需要在多个地方使用。如果您进行不必要的重构,则并未执行可能起作用的最简单操作。 您不会需要它

此时,通常的模式是创建一个“concerns”目录。有关更多信息,请参见 Jamis Buck 的这篇博客文章或 Peter Marklund 的这篇文章


0
通常情况下,将类名翻译成文件系统位置时,请遵循Rails的命名约定。(即:将类FooHelper::Bar保存在foo_helper/bar.rb中)
对于仅使用一次并且与模型保持在同一文件中的小型辅助类,您可以做出例外,但这些应该是例外。(但反之亦然,不要创建成千上万个单行文件)
充分利用模块和类名称空间。如果您有一个仅由您的模型使用并且依赖于它的辅助类,请将它们放入模型类的名称空间中:
class TheModel::HelperClass
end

文件系统中的位置将是app/models/the_model/helper_class.rb

而不依赖于您的模型的某些内容可能仍然可以命名空间化

module Bar
  class Foo
  end
end

住在 bar/foo.rb,当然啦

你可能不需要害怕把不是模型的东西放到lib里面—-这个目录就是为此而设立的

我认为concerns虽然有用,但不是正确的做法,因为那是将单一类拆分为多个文件的方法,而你似乎并没有这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接