我有一个rails应用程序运行得相当好,但我自己这样做的事实意味着一些可怜的草皮最终会看到这个并说:“你到底在想什么?你为什么把这个放在这里?!?!”Rails:模型依赖类位置的最佳实践?
那个可怜的可怜的灵魂在哪里看到一系列除了一个单独的模型课程之外都没有使用的课程?很显然,我可以将它与TheModel类一起放入the_model.rb中,但是这可能会扩展到超出计划的两个类的范围之外。
我曾经考虑过lib,但它并不需要混淆每个人对世界的看法。 ...
谢谢。
我的前任感谢你。
我有一个rails应用程序运行得相当好,但我自己这样做的事实意味着一些可怜的草皮最终会看到这个并说:“你到底在想什么?你为什么把这个放在这里?!?!”Rails:模型依赖类位置的最佳实践?
那个可怜的可怜的灵魂在哪里看到一系列除了一个单独的模型课程之外都没有使用的课程?很显然,我可以将它与TheModel类一起放入the_model.rb中,但是这可能会扩展到超出计划的两个类的范围之外。
我曾经考虑过lib,但它并不需要混淆每个人对世界的看法。 ...
谢谢。
我的前任感谢你。
让他们在the_model.rb
,直到你需要他们在多个地方。如果你不必要地重构,你不会做最可能工作的最简单的事情。 You aren't gonna need it。
此时,一般模式是为“关注”创建一个目录。有关更多信息,请参阅this weblog post by Jamis Buck或this one by Peter Marklund。
通常:在将类名转换为文件系统位置时,请遵循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,虽然有用,是不是真的走,因为这是正确的方式一种将单个类拆分为多个文件的方法,您似乎没有这样做。
你是不是指你的继任者谢谢我? – 2009-02-03 23:23:14