我最近一直在使用Ruby on Rails进行许多项目,我认为看看Rails源代码并真正了解事情如何在下面运行会很有趣。我认为这将是一次很棒的学习经历,并且可能会增强我对Rails应用程序进行编码的方式。
有没有人有关于如何开始的任何提示?在Rails源中,应用程序何时开始执行?也许如果我从那里开始,我可以看到一切都是如何加载的并且一般都可以工作。
答案 0 :(得分: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的系列。你可能想看一看。
答案 1 :(得分:4)
有关于Rails(3.0)初始化过程的指南:http://ryanbigg.com/guides/initialization.html
答案 2 :(得分:1)
我参加晚会很晚。 如果您对ActionDispatch(对控制器的路由请求)感兴趣,那么文档“Rails on Rack”是一个很好的起点。
http://guides.rubyonrails.org/rails_on_rack.html
对于当前的主分支,您需要边缘指南
http://edgeguides.rubyonrails.org/rails_on_rack.html
本文可帮助您了解导轨和机架之间的关系。一旦了解了rack,就可以找出对rails框架的请求的入口点。(Rails实现机架app界面)
您可以按照入口点一直走到控制器。这就是我所做的。
答案 3 :(得分:0)
怎么样......