2012-12-07 44 views
1

我有一個模塊文件,需要用於我的rails項目。當我對Rails模型,視圖,控制器等進行更改時,服務器不需要重新啓動。但是當我在該模塊中進行更改時,我需要重新啓動服務器。每當我做出更改時,Rails服務器都會重新啓動

module.rb不會從Rails類繼承任何東西。

的結構是這樣的:

class_1.rb < class_2.rb包括module.rb

class_1.rb,class_2.rb也不ActiveRecord的類。 他們都位於我的模型目錄。

我的config/enviroments/development.rb文件是正確的,因爲它有這樣的:

config.cache_classes = false 
+0

哪個版本的導軌? – krichard

+0

您可以嘗試從「rails c」運行此命令,以查看是否像您認爲的那樣設置了cache_classes:APP :: Application.config.cache_classes其中APP是您的應用程序的名稱。 –

回答

1

更新:爲Rails 3.2.9本應工作的權利開箱!
這裏是我想和它的作品無需重新啓動服務器:

# ../models/a.rb 
class A 
    include SomeModule 
    def test 
    " test:a" 
    end 
end 

# ../models/b.rb 
class B < A 
    def test 
    super + " test:b" 
    end 
end 

# ../models/some_module.rb 
module SomeModule 
    def call_test 
    test + " test:module" 
    end 
end 

# ../controllers/home_controller.rb 
class HomeController < ApplicationController 
    def index 
    @i = B.new.call_test 
    end 
end 

你可以把你的這裏面application.rb中當你的生活模塊自動加載路徑內犯規:

# Autoload lib/ folder including all subdirectories 
config.autoload_paths += Dir["#{config.root}/your_module_folder/**/"] 
+0

抱歉沒有工作 –

+0

我接受太快了 –

+0

我添加了這些行以確保: config.autoload_paths + = Dir [「#{Rails.root}/app/models/** /」] config.autoload_paths + = Dir [「#{config.root}/app/models/** /」] config.autoload_paths + = Dir [「#{Rails.root}/app/models/**」] config.autoload_paths + = Dir [「#{config.root}/app/models/**」] config.autoload_paths + = Dir [「#{Rails.root}/app/models/*」] config.autoload_paths + = Dir [ 「#{config.root}/app/models/*」] –

相關問題