2009-02-03 68 views
4

我有一个rails应用程序运行得相当好,但我自己这样做的事实意味着一些可怜的草皮最终会看到这个并说:“你到底在想什么?你为什么把这个放在这里?!?!”Rails:模型依赖类位置的最佳实践?

那个可怜的可怜的灵魂在哪里看到一系列除了一个单独的模型课程之外都没有使用的课程?很显然,我可以将它与TheModel类一起放入the_model.rb中,但是这可能会扩展到超出计划的两个类的范围之外。

我曾经考虑过lib,但它并不需要混淆每个人对世界的看法。 ...

谢谢。

我的前任感谢你。

+0

你是不是指你的继任者谢谢我? – 2009-02-03 23:23:14

回答

0

通常:在将类名转换为文件系统位置时,请遵循Rails命名约定。 (即:保持类FooHelper::Barfoo_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,虽然有用,是不是真的走,因为这是正确的方式一种将单个类拆分为多个文件的方法,您似乎没有这样做。