3

したがって、Rails 構成ファイルを変更するために Web で使用されている 2 つの異なる規則に混乱しているので、問題はありません。

具体的には、次の 2 つのステートメントがよく使用されます。

config.autoload_paths << "#{Rails.root}/app/arbitrary"
config.autoload_paths += %W(#{config.root}/app/arbitrary)
config.autoload_paths += Dir["#{config.root}/app/arbitrary/**/"]

<<まず、演算子と演算子を使用して違いはあります+=か? 第二に、よりもむしろ使用する方が良いと考えられていRails.rootますconfig.rootか?

これらの規則の一部は、特定の組み合わせでのみ使用できますか? 一見基本的なことを知らないのが嫌いです。

4

2 に答える 2

1

<<との違い+=

config.autoload_paths配列です。配列オブジェクトの場合、 1 つ<<のオブジェクトを配列にプッシュし、+2 つの配列を結合して新しい配列を作成します。そのため、既存の配列に追加するオブジェクトが 1 つしかない場合は、<<新しいオブジェクトが作成されないため、パフォーマンスの面で優先されます。既存の配列に別の配列を追加する場合は、を使用する必要があります+

ご存知のとおり、a1 =+ a2は に等しいa1 = a1 + a2です。

Rails.rootconfig.root

Rails.rootRails アプリの単なるルートです。Rails アプリで を使用する場合config.rootは、 と同じにする必要がありますRails.root。ただし、エンジンのルートになるエンジンでも使用できます。が Rails アプリで使用されている場合config.root、アプリをエンジンとして使用するために変更する必要がない場合があります。

于 2012-11-29T10:02:56.570 に答える
0

<<単一の値を+=追加し、値の配列を追加します。この%w(...)表記は、文字列の配列の単なるショートカットです。

Rails.rootメソッド のソースを確認してください: https://github.com/rails/rails/blob/master/railties/lib/rails.rb#L83

config.rootとにかく使うので

Rails.application.config == Rails.configuration

に評価されtrueます。これは、config/application.rb および config/environments/ ファイルの構成ブロックに渡されるオブジェクトでもあります。

于 2012-11-29T10:04:43.513 に答える