2010-04-22 85 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框架應用程序接口的實現)

你可以沿着入口點並一直走到控制器。這就是我所做的。