开始学习Rails源码入门

12

最近我经常使用Ruby on Rails进行许多项目,我认为研究Rails源代码并真正了解事情在底层是如何运作的会非常有趣。我认为这将是一个很好的学习经验,并且可能会增强我编写Rails应用程序的能力。

有人有关于如何入门的提示吗?应用程序从Rails源代码的哪里开始执行?也许如果我从那里开始,我就可以看到所有东西是如何加载并且总体上是如何工作的。


4
这张图片提供了Rails架构的概览。有关内容从Dispatcher开始,您可以在代码中从那里开始追踪。-http://lh4.ggpht.com/Dikiwinky/RwGSHOH-OWI/AAAAAAAAAEI/4UH_4ohjC4U/Rails2.png - Anurag
4个回答

12

我认为这将是一个极好的学习经历,而且可能会增强我的Rails应用程序编码能力。

这是个好主意!

你应该从GitHub上的Rails源代码(这里是2.3分支下的ActiveRecord)开始。如果你正在使用Rails,则可能熟悉Rails本身由几个不同的Gem组成:ActiveRecordActiveSupport等。

立即跳入代码中可能并不简单。我建议你两种替代方法来开始深入挖掘Rails代码库:

  • 养成一种习惯,每次使用一个方法、helper或Rails命令时,就跳到源代码中查找该方法并阅读它。尝试理解其上下文、工作原理和使用的方法/库。然后,每当方法A使用方法B时,开始回溯查找方法B。设定一个反向查找的限制,例如2个上级级别,以便不会从link_to helper开始查找整个框架。

  • 而不是从代码库的顶部开始,选择你最熟悉的库。如果你没有任何偏好,可以从ActiveSupport开始。ActiveSupport是Rails工具包。它提供了大量扩展,可以在Rails代码甚至Ruby程序中使用。

在你能够将所有信息组合起来并理解单个Rails应用程序如何工作之前,这需要一段时间,但绝对值得努力。

作为一则小提示,几个月前我开始了一个系列文章叫做“深入理解Ruby on Rails”,你可能会对它感兴趣。可以点击此处查看。

4

提供的链接已经失效了。有可能更新或者移除吗?谢谢。 - Bryan Ray

1
我很晚才来参加聚会。 如果你对ActionDispatch(将请求路由到控制器)感兴趣,那么文档“Rails on Rack”是一个很好的起点。

http://guides.rubyonrails.org/rails_on_rack.html

对于当前的主分支,您需要边缘指南。

http://edgeguides.rubyonrails.org/rails_on_rack.html

本文帮助你理解Rails和Rack之间的关系。一旦你理解了Rack,就可以找到请求进入Rails框架的入口点。(Rails实现了Rack应用程序接口)
您可以按照入口点并一直追溯到控制器。这就是我的做法。

0

怎么样?

  • guides.rubyonrails.org
  • railscasts.com

3
这意味着更多学习Rails框架本身,而不是Rails源代码。 - Robert Speicher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接