10

私は誰かのリポジトリで次のソースコードを見ました:

module Twitter
  module Bootstrap
      module Rails
        require 'twitter/bootstrap/rails/engine' if defined?(Rails)
      end
   end
end

require 'less-rails'
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails)

ソース

requireモジュールを入れると何が違うのか知りたいのですが?

4

1 に答える 1

13

に関する限り、違いはありませんrequire。つまり、require常にファイルをグローバル名前空間にロードします。

requireこの場合、内部は常に実行されることに注意してください。Railsその時点では、内部のモジュールを参照しているため、ifそこにあるステートメントは常にtrueと評価されます。

これは、コードがおそらく混乱の少ないものと同等であることを意味します。

module Twitter
  module Bootstrap
    module Rails
    end
  end
end

require 'twitter/bootstrap/rails/engine'
require 'less-rails'
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails)
于 2012-07-25T03:36:13.417 に答える