想一个问题。在 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 目录中去拿。