2011-04-13 126 views
18

我有一個rails 3應用程序在開發模式,將不會加載我在運行webrick時所做的任何更改。我三重檢查了我的development.rb的設置,並確保我在開發模式下運行。Rails 3開發環境保持緩存,即使沒有緩存?

config.cache_classes = false 
config.action_controller.perform_caching = false 

我還檢查我的tmp目錄,以確保緩存文件夾是空的 - 我還沒有做任何網站上的高速緩存和從未開啓緩存。即時猜測它的文件加載問題。

我也在webrick上運行,然後安裝雜種,問題依然存在。

即時猜測我跑到一個配置問題,BC我沒有看到其他人發佈這樣的概率。還有什麼我失蹤?

編輯:它看起來像我的視圖助手不能自動加載 - 默認情況下不是助手應該在軌道3中可重新加載?

+2

你在你的項目中使用STI) – fl00r 2011-04-13 08:41:53

+0

@ fl00r,我知道我是一個有點晚了這裏的遊戲,但你可以詳細闡述這一點? – 2011-10-14 23:14:19

+0

如果你在開發中使用STI,你應該自動加載(緩存)類或繼承將無法正常工作 – fl00r 2011-10-15 21:19:16

回答

4

我有過類似的經歷,但我不相信這是真正的助手類,它是我在lib/目錄下編寫的任何東西。如果你已經使用require 'some_class'語句,那麼你應該把它切換到:

require_dependency 'some_class' 

工作就像對我的魅力。

1

我知道這是一個古老的問題,但對於任何人來到這裏與類似的問題,請確保你沒有像我一樣意外地將production.rbconfig/environments/移動到config/initializers/。這將使Rails讀取production.rb文件並覆蓋您的開發設置。哎呦。

1

有同樣的問題,這是由rails-dev-tweaks gem引起的,如果您使用README的默認配置,則禁止在AJAX請求時重新加載堆棧。

2

我有同樣的問題,這裏是簡單的解決方案。
在你config/environments/development.rb集以下設置:

config.action_controller.perform_caching = false 
config.perform_caching = false 
config.cache_store = :null_store 
+0

這爲我工作 – 2015-11-09 21:19:10

0

我使用Rails 4,並在助手使用Rails.cache.fetch我的緩存調用。

google搜索了一下後,我發現了這個問題(https://github.com/rails/rails/issues/20733),其中PR併入軌道5文件明確指出,「

改變config.action_controller.perform_caching的價值將 只對由動作控制器組件提供的緩存有影響。例如,它不會影響低級緩存,我們在下面的地址是 。

','低級緩存'Rails.cache.fetch。

現在是在文檔:http://guides.rubyonrails.org/caching_with_rails.html