在 Rails 5 中添加目录以自动重新加载

Add directory to auto-reload in Rails 5

版本:Rails5b3

我有一个位于 <rails root>/app/liquid 的文件夹。里面有更多目录和 .rb 文件。所有 .rb 文件都很简单 类,没有包含或要求

每次修改这个目录下的文件都要重新启动服务器很不方便,所以我希望这些类在每次刷新页面时自动重新加载。 config.eager_load_paths += ["#{Rails.root}/app/liquid"] 好像不行。

如有任何建议,我们将不胜感激!


编辑:澄清一下,app/liquid 中的文件会按预期自动加载和重新加载。但是,子目录中的任何文件(如 app/liquid/drops/*.rb) 会正确自动加载,但不会在页面刷新时自动重新加载

尝试切换 liquid 的 cache_classes 配置,这样 类 就不会缓存在您的开发环境中:

Liquid.cache_classes = false

来源:https://github.com/Shopify/liquid/wiki/liquid-for-programmers#caching-of-classes

我通过将 config.autoload_paths += Dir[ Rails.root.join('app', 'liquid', '**/',) ] 添加到 application.rb

解决了这个问题