这是question的后续行动。在开发过程中,我每次更改lib /中的代码时都必须重新启动rails应用程序才能使代码更改生效。如何使代码自动重新加载,如控制器,模型等?
答案 0 :(得分:2)
对于 Rails 3 ,请更改@ science的答案中文章中给出的说明。在environments/development.rb
文件中,添加以下行:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder'
当然,请将模块的名称替换为MyModuleInLibFolder
。
答案 1 :(得分:1)
为什么不直接输入
load Rails.root + '/lib/your_lib.rb'
答案 2 :(得分:1)
module ActsAsReloadable
def self.included(base)
ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
end
end
要使用它,只需在您的lib / *文件中include ActsAsReloadable
并在config.autoload_paths += %W(#{config.root}/lib)
config/application.rb
答案 3 :(得分:0)
如果您已经采用了以前的方法但不起作用(例如我的情况),请尝试使用config.reload_classes_only_on_change
中的development.rb
。
Rails 4.2 here✋