2009-11-26 51 views

回答

9

如果更改模型,開發環境不要求您重新啓動服務器。如有必要,他們將爲每個請求重新加載環境。

生產環境是不同的故事。在生產環境中運行的Rails服務器(mongrel/passenger/webrick/etc)只會在進程啓動時加載一次Rails環境。這需要幾秒鐘,您可能會注意到在啓動也加載Rails環境的控制檯時。爲了避免每個請求的開銷,服務器將從加載的環境中產生一個新線程來處理每個傳入的請求。

因爲服務器只響應HTTP請求和通常的信號。沒有好的辦法來強制重新加載環境,而不是總是加載新的環境(如開發環境或重新啓動服務器)

+0

非常感謝!這就解釋了爲什麼它在所有教程中都強調了這一點 – RedNax 2009-11-26 07:40:34

+2

糾正我,但是我不認爲每個請求都會重新加載整個環境,我的印象是,在開發環境中,儘管類沒有被緩存(因此如果你改變模型或控制器不需要重啓服務器), ActionController不會緩存任何視圖,並且路由重新繪製每個請求,我不相信整個環境會被重新加載,因爲初始化程序不會被重新加載每個請求 – 2009-12-09 10:28:24

+0

@Steve:你確實是正確的。服務器以開發模式啓動,但不是每個請求都啓動。 – EmFi 2009-12-09 14:56:17

相關問題