Rails 在 rails3 中 Gemfile 中设置的 gem 是怎么被 rails 找到并使用的呢?

lb563 · March 15, 2012 · Last by lb563 replied at March 15, 2012 · 3453 hits

想一个问题。在 rails 中在 Gemfile 中设置的 gem(例如:mysql2 ).

在我们执行 bundle install 后 他安装到系统 gem 路径下. 但是 rails 是怎么就找到这个 gem 包然后使用里面的代码呢?

是使用 mysql2 这个 gem 包文件目录下 lib 中的 mysql2.rb 这个文件做为入口吗?

是的话我猜想可能就是每个 gem 包的话 rails 都会自己到 lib 路径下找对应 gem 包名的 ruby 文件。

http://gembundler.com/rationale.html#setting-up-your-application-to-use-bundler

打开 config/application.rb

if defined?(Bundler)
  Bundler.require *Rails.groups(:assets => %w(production development test))
end


gem 的查找跟 LOAD_PATH 有关

http://guides.rubygems.org/what-is-a-gem/#requiring_code

Bundler 的责任,和 rails 无关。

#1 楼 @Rei 多谢。明白了果然是到对应 gem 包的 lib 目录中去拿。

You need to Sign in before reply, if you don't have an account, please Sign up first.