2012-03-05 49 views
7

我一直在使用Rails的幾個月,現在,我很舒適的操控起來Rails的我需要一個項目&等修改Rails:高級用戶如何找出需要更改的內容?

最近我一直在試圖獲得更先進一點,所以我試圖修改/添加到現有的rails代碼庫中:添加新的表單幫助器方法,添加一個responds_to:pdf方法等等,並且我遇到了很多問題。

難度在於學習我需要修改哪些代碼;代碼的位置,以及如何確保我不會錯過其他文件中的相關代碼。我猜測人們有這樣的學習方式,但目前我主要只是猜測和希望。

我想我的問題是,Rails的人怎麼去了解他們需要修改的代碼在哪裏編輯&編輯它的方法?看起來這只是你需要從以前的熟悉中知道的東西,但我猜測必須有一個簡單的方法來理解編輯的位置(和內容)。

讚賞任何想法...乾杯

+0

你所描述的對我所做的事情來說相當準確! – 2012-03-05 12:35:02

+0

不錯的問題,我想知道別人怎麼做。我只是使用[API文檔](http://apidock.com/rails)來查看源代碼,直到我理解了機制。獲得知識的另一種方式是堆棧溢出!當我開始學習rails時,我曾經掃描所有rails相關的問題,並試圖自己找到答案。這樣做,我學到了很多關於軌道內部的知識。然而,我不確定這個問題屬於這裏。也許在http://codereview.stackexchange.com? – 2012-03-05 13:16:39

回答

3

我強烈建議何塞Valim的Crafting Rails Applications

你去通過先進的項目,建設了類型的發動機和自定義的,將帶你到你的Rails開發一個新的水平。

從網站:

這本書將幫助你理解的Rails 3的內部運作,包括 發電機,模板處理程序,國際化,路由和 反應。

+0

感謝您的迴應。我已經閱讀了Crafting並且很喜歡它,但是我並沒有深入瞭解用於理解框架不熟悉部分的方法。是的 - 創建寶石的方法是 - 但是在框架被打開的情況下,似乎更多的是「只是輸入」的方法,而不是如何理解被修改的框架的各個部分。 – PlankTon 2012-03-06 02:46:21

+0

@unclaimedbaggage如果您掌握了Crafting技術,那麼現在是時候讓您潛入。運行耙測試,進行更改,再次運行測試。重複。這個級別沒有導遊。 – 2012-03-06 20:17:05

-2

你問的是如何MVC作品。基本上你可以說:

1.)把邏輯放到模型上!模型是一切轉向的樞紐。

2.)控制器是模型和視圖之間的中間人。您不要在這裏放置任何與從數據庫中選擇應該在視圖中顯示的數據無關的邏輯。如果您多次使用一個選擇邏輯,請在模型中創建一個scope並將其用於控制​​器中。

3.)視圖只是在那裏顯示的東西!你不要在這裏放任何邏輯!所有的邏輯來自模型,數據來自控制器。您在這裏使用的唯一邏輯是應該顯示的數據數組循環。

然後你有一些缺失的東西。如果你有一個與外部服務相關的任務,比如說一個SOAP服務,你也可以爲它寫一個類。只是沒有使用ActiveRecord :: Base繼承,就像它由腳手架生成的一樣。您可以在其他模型中調用此類。不要把它放在控制器上,或者在每個需要它的類中複製代碼!保持DRY(不要重複自己)。只需爲它寫一個類並將其包含在其他模型中!

另一件事是數據庫的基本:不存儲可以從數據庫的其他領域計算的數據!您可以添加計算所需材料的方法,但不要以重複項開始。

+0

感謝您的迴應,但不完全是我以後的。我很喜歡使用rails和集成ruby腳本。它擴大/覆蓋了令我害怕的框架本身。 ;-) – PlankTon 2012-03-05 13:58:05