这个问题是关于捆绑器、rubygems 以及它如何确定我正在调用的方法。它很长,所以请多多包涵。
据我了解,Bundler 是一个用于管理 ruby 的 gem 的依赖管理工具。它安装所有 gem 及其在Gemfile
.
我想问的问题最好用一个例子来说明。所以在这里--> 在我的 Rails 应用程序中,我在控制器中执行此操作:-
module SurveyorControllerCustomMethods
def create
super
end
end
class SurveyorController < ApplicationController
include Surveyor::SurveyorControllerMethods
end
在这里,我正在做两件事:
- 包括
SurveyorControllerMethods
来自测量师宝石。 - 因为我在这里使用了super,所以它会调用可以正常工作
create
的方法,SurveyorControllerMethods
但我不明白。
并且 gem 安装在
$ bundle show surveyor
/home/gaurish/.rvm/gems/ruby-1.9.3-p194/gems/surveyor-0.22.0
令人惊讶的是,红宝石中不存在$LOAD_PATH
。所以问题是:
- 它是如何工作的?
- 使用 bundler 安装 gem,安装过程中幕后发生了什么?
- 有一些 gem
jquery-rails
,我们甚至不需要在我们的代码中包含/调用它们,然而,jQuery JavaScript 文件会自动包含在内。我知道它不是魔法,那么它是如何工作的呢?