我有一个模块文件,我需要用于我的rails项目。当我对任何Rails模型,视图,控制器等进行更改时,服务器不需要重新启动。但是当我在该模块中进行更改时,我需要重新启动服务器。
module.rb
不会从Rails类继承任何内容。
结构如下:
class_1.rb < class_2.rb includes module.rb
class_1.rb, class_2.rb are also not ActiveRecord classes
。
它们都位于我的模型目录中。
我的config/enviroments/development.rb
文件是正确的,因为它有:
config.cache_classes = false
答案 0 :(得分: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/**/"]