2010-04-22 88 views
12

我最近在很多项目上一直在使用Ruby on Rails,我认为看一看Rails源代码并真正了解底层的运行情况是很有趣的。我认为这将是一次很好的学习经历,并可能会增强我对Rails应用程序的更多编程方式。学习Rails源码入门

有没有人有关于如何入门的提示? Rails源代码中的哪个位置开始执行应用程序?也许如果我在那里开始,我可以看到一切是如何加载和工作的。

+4

此图片提供了Rails架构的广泛概述。在Dispatcher开始的东西,你可以从代码开始追踪你的方式 - http://lh4.ggpht.com/Dikiwinky/RwGSHOH-OWI/AAAAAAAAAEI/4UH_4ohjC4U/Rails2.png – Anurag 2010-04-22 04:50:32

回答

12

我认为这将是一个很好的学习 的经验,并可能会增强 我编写Rails应用程序的方式全部为 以上。

这是一个好主意!

首先你应该从Rails source on GitHub(这里是branch 2.3)。如果您使用的是Rails,那么您可能很熟悉Rails本身由几个不同的Gems组成的事实:ActiveRecord,ActiveSupport,...

立即跳入代码并不那么简单。我建议你两种可供选择的方式开始挖到Rails代码库:

  • 走的习惯,您使用的方法的任何时候,一个帮手或Rails的命令跳转到查找源代码的方法和阅读它。试着理解它的上下文,它是如何工作的以及它使用的是哪些方法/库。然后,每次方法A使用方法B时,开始回溯并查找方法B.设置反向查找次数的限制,例如2个较高级别,以便最终不会查找整个框架来自link_to帮手。

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

这将需要一段时间,你就可以放在一起的所有信息,并了解一个Rails应用程序工作之前,但它肯定是值得的。

作为一个便笺,几个月前我开始了一个名为Inside Ruby on Rails的系列。你可能想看看它。

0

怎么样......

  • guides.rubyonrails.org
  • railscasts.com
+3

这是更多的学习Rails,而不是Rails _source_。 – 2010-04-22 04:15:20

1

我很晚参加派对。 如果您对ActionDispatch(路由请求到控制器)感兴趣,文档“Rails on Rack”是一个很好的起点。

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

当前主分支,你需要边缘导向

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

本文帮助您了解导轨和机架之间的关系。一旦你理解了机架,你就可以找出对rails框架的请求的入口点(Rails框架应用程序接口的实现)

你可以沿着入口点并一直走到控制器。这就是我所做的。