12

一部のモデルでは、他のモデルを最初にロードする必要があります。ただし、必要な各ファイルをロードする必要があるのは 1 回だけです。

これを管理する最善の方法は何ですか? すべての必要な行をファイル (init.rb など) に入れるか、各モデル ファイルの先頭にファイルを必要としますか?

4

2 に答える 2

12

各オプションを評価しましょう。

  1. すべての必要な行をファイルに入れます (init.rb など)。

    これは、すべてのファイルが 1 か所にまとめられるため、個々のファイルが整理されることを意味しますrequire。ただし、それらが書き込まれる順序が問題になる可能性があるため、このファイルで依存関係の解決を手動で効果的に行うことになります。

  2. 各モデル ファイルの先頭にファイルが必要です

    各ファイルにはもう少し多くのコンテンツが含まれますが、各ファイルは必要な依存関係を明示的に要求するため、順序について心配する必要はありません。require同じファイルを複数回呼び出しても効果はありません。

    これは、コードの一部のみを要求できることも意味します。これは、ライブラリに役立ちます。たとえばrequire active_support/core_ext/date/calculations、外部アプリが必要とするライブラリの一部のみを取得します。

2つのうち、私は2番目を選びます。よりクリーンで、考える必要が少なくなり、コードがよりモジュール化されます。

于 2012-10-22T00:45:12.190 に答える
2

各ファイルについて、requireそのファイル内で依存するすべてのファイル。各ファイルは一度しか必要とされないため、他のファイルと重複しても害はありません。requireそれがメソッドの目的です。

于 2012-10-22T00:41:51.813 に答える