2012-08-13 88 views
2

我正在使用Rails 3.1並開發了一年半的時間。今天早上我一定做了一些事情,現在好像我的很多文件似乎都被緩存了。這包括視圖文件,控制器和模型。Rails:控制器和模型似乎被緩存在開發中

我可以在模型,控制器等進行更改,它不會對我的應用程序(在本地主機上運行:3000)產生任何影響。我試圖切換端口(例如本地主機:3005),但它沒有工作。

我沒有改變任何配置文件或在我的電腦(Mac,Lion)上做出任何大的改動,但顯然我必須做點什麼。

  • 我在開發模式
  • 我在Mac
  • 公共文件夾是空的,除了
  • 我刪除了/緩存/資產文件夾
  • 404頁等使用的TextMate工作
  • 我已經刪除了我的瀏覽器上的緩存

重新啓動服務器使其工作,總是!有時(非常少見)更改會在不重新啓動的情況下生效。

這是我development.rb:

# Settings specified here will take precedence over those in config/application.rb 

    # In the development environment your application's code is reloaded on 
    # every request. This slows down response time but is perfect for development 
    # since you don't have to restart the web server when you make code changes. 
    config.cache_classes = false 

    # Log error messages when you accidentally call methods on nil. 
    config.whiny_nils = true 

    # Show full error reports and disable caching 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger 
    config.active_support.deprecation = :log 

    # Only use best-standards-support built into browsers 
    config.action_dispatch.best_standards_support = :builtin 

    # Raise exception on mass assignment protection for Active Record models 
    config.active_record.mass_assignment_sanitizer = :strict 

    # Log the query plan for queries taking more than this (works 
    # with SQLite, MySQL, and PostgreSQL) 
    config.active_record.auto_explain_threshold_in_seconds = 0.5 

    # Do not compress assets 
    config.assets.compress = false 

    # Expands the lines which load the assets 
    config.assets.debug = true 

什麼可能會發生,如何解決或解決呢?

+0

設置「config.cache_classes =真」,然後回到虛假似乎暫時解決了這個問題......可能是一個線索? – Christoffer 2012-08-13 11:39:46

+0

你是否設法解決這個問題,我們發生了完全相同的事情,它似乎是計算機專用的。在我的電腦上,它在我的同事電腦上工作,它不斷緩存課程。 – DickieBoy 2012-08-23 16:42:35

回答

2

你可能沒有看着你認爲你在看什麼。最常見的原因是:您在運行應用程序時查看項目的副本,而不是正在查看的文件夾。

或者你搞砸了你的development.rb(config.cache_classes = false)。

緩存提示:此頁面包含所有緩存技術。看一下關於頁面緩存的問題(它甚至沒有通過Ruby堆棧運行)。

http://guides.rubyonrails.org/caching_with_rails.html

其他提示:整個項目複製到一個新的文件夾,所以由OS的任何文件夾魔術不會干擾。

開發日誌沒有透露有關正在發生的事情的任何提示嗎?特別是如果你把索姆非法代碼放在你的主要模型之一(真的應該崩潰)...

+0

不,這不可能,因爲大多數視圖(即application.html.erb)都可以正常工作...... – Christoffer 2012-08-13 11:16:31

+0

哦,並且config.cache_classes應該設置爲false,對吧? (這是給我的,我沒有改變它)。 – Christoffer 2012-08-13 11:19:58

+0

如果第二個不是真的(你的假設是正確的),第一個必須是真的。您未編輯用於生成網頁的文件。你是從最近的列表編輯,並從命令行開始?打開文件,而不使用最近的列表,並仔細檢查你的路徑... – 2012-08-13 11:50:48

2

我已經有同樣的問題。

添加下面一行在我development.rb文件我的問題已經得到解決後:

config.reload_classes_only_on_change = false 

我不明白爲什麼這個問題與高速緩存來了。在這兩個星期裏,一切工作都很順利。

我使用的TextMate,也許......