如果你已经打算阅读 rails 源代码了,你一定已经安装好 ruby 和 rails 了,可能和我一样你也是用 rvm 来安装和管理 ruby 版本的。
必要的 ruby 语言知识
除了掌握基本的 ruby 语言外,还需要掌握基本的元编程知识,读过<ruby 元编程>最好,但这不是必须的,你需要熟悉下面这些方法:
- 类方法的定义,用这种方法的好处是比较集中,方便阅读,你也可以少敲很多 self
class << self
def foo
# method body
end
end
- 几个重要的方法
class_eval
instance_eval
method_missing
extend
extended
included
inherited
可能还有其他方法,我一时想不起来了,或者我还没有遇到,毕竟我也才开始阅读 rails 源码。遇到不清楚的查 ruby 库文档就可以了。
我们要读的代码
首先要分清楚这么几个概念:rails 包源代码、rails 源代码、rails 应用代码,我们主要读的是后两个。
-
rails 包源代码
rails gem 的开发包,是从 github 上直接git clone
下来的代码,可以随便看看,但不是我们将要阅读的目标。 -
rails 源代码
这是我们将要阅读的代码,通过gem install rails
安装后,rails源代码及其依赖的 gem 源代码都保存在 gem 的安装目录里,它的目录代码和开发包是很不一样的。 -
rails 应用代码
当我们运行了rails new foo
之后,rails 生成的 app 框架,应用的逻辑代码。
rails 安装目录
通过运行 gem environment gemdir rails
可以查看 rails 的安装目录,在我的机器上是 ~/.rvm/gems/ruby-2.4.0/gems/ 。你可以用一个你趁手的编辑器打开它,vim 是一个很好的选择。
网友评论