精華區beta Ruby 關於我們 聯絡資訊
出自我的Blog http://lightyror.blogspot.com/2006/10/cache-class.html 如果你看過 Ruby on Rails 的書,他上面會有說在 Development Mode 裡面,Ruby on Rails 預設會auto reload class ,而不是將 class cache 住。這樣的好處是你不需要重新 restart server ,方便開發時間。這個選項在 config/enviroments/xxxxx.rb 裡面也可以手動修改設定 config.cache_classes = false 如果你要 cache class ,就把這個改成 true 即可。但是 Ruby on Rails 真的會 auto reload 所有的東西嗎?結論似乎不是這樣的。我開始開發時就發現,他只會 auto reload app/ 底下的 class ,所以所有的 config ,lib 之類的 class 有修改過都必須要重新啟動 server 。 這樣還好怎麼不麻煩,但是我今天又發現到,就算是 app/ 底下的 class ,也有一些不會 auto reload。今天有一個 Model Class ,他在 app/models/ 資料夾底下,他的 code 是這樣的 class User < ActiveRecord::Base end 當你修改他的檔案內容,他會很正常的 auto reload。但是,同樣是在 app/models/ 資料夾下,如果他的Class 並不繼承 ActiveRecord ,像是這樣 class User end 很奇怪的是他居然不會 auto reload 這個 class ,而是會將他 cache 住。如果一不小心,就很容易 debug de 半天。 -- lighty RoR 是一個介紹 lighttpd , SQLite , Ruby and Rails 的 Blog http://lightyror.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.90.242