某些模型需要先加载其他模型。但是每个需要的文件只需要加载一次。
管理此问题的最佳方法是什么?将所有要求行放在一个文件中(如 init.rb),还是将要求文件放在每个模型文件的顶部?
某些模型需要先加载其他模型。但是每个需要的文件只需要加载一次。
管理此问题的最佳方法是什么?将所有要求行放在一个文件中(如 init.rb),还是将要求文件放在每个模型文件的顶部?
让我们评估每个选项:
将所有需要的行放在一个文件中(如 init.rb)
这意味着每个单独的文件将不那么混乱,因为require
s 都将在一个地方。但是,它们的写入顺序可能会发生,因此您最终会在此文件中有效地手动进行依赖关系解析。
在每个模型文件的顶部需要文件
每个文件都会有更多的内容,但您不必担心排序,因为每个文件都明确需要它需要的依赖项。require
多次调用同一个文件没有效果。
这也意味着您可以只需要部分代码,这对库很有用;例如require active_support/core_ext/date/calculations
,仅获取外部应用程序需要的库的一部分。
在这两个中,我会选择第二个。它更干净,需要更少的思考,并使您的代码更加模块化。
对于每个文件,require
在该文件中包含它所依赖的所有文件。与其他文件重复并没有害处,因为每个文件只需要一次。这就是该require
方法的目的。