一些模型需要先加载其他模型。但每个所需文件只需加载一次。
最好的管理方式是什么?把所有require行都放在一个文件中(如init.rb),还是在每个模型文件顶部require文件?
最好的管理方式是什么?把所有require行都放在一个文件中(如init.rb),还是在每个模型文件顶部require文件?
让我们评估每个选项:
将所有的require语句放在一个文件中,比如init.rb
这意味着每个单独的文件都会更简洁,因为所有的require
都在同一个地方。然而,它可能会发生它们编写的顺序有所影响,因此你最终实际上需要在这个文件中手动解决依赖关系。
在每个模型文件的顶部引用所需的文件
每个文件会有更多的内容,但是你不必担心排序,因为每个文件都明确地要求了它所需的依赖项。对同一文件多次调用require
没有任何效果。
这也意味着你可以仅仅引用你代码的某些部分,这对于库非常有用;例如: require active_support/core_ext/date/calculations
只获取外部应用程序所需的库的那部分。
在这两个选项中,我会选择第二个。它更清晰,需要更少的思考,并且使你的代码更加模块化。
require
引用它所依赖的所有文件。即使与其他文件存在重复,也不会有任何影响,因为每个文件只需要被引用一次。这就是require
方法的目的。