How to extend a class from an initializer and have it reload in development environment?

前端 未结 5 1924
感动是毒
感动是毒 2021-02-08 00:03

I am extending a class (which is in a plugin) by including a module, this is done in an initializer.

require \'qwerty/core/user\'
User.send :include, Qwerty::Co         


        
5条回答
  •  广开言路
    2021-02-08 00:31

    At first I was going to advise something about adding a 'development' directory to the front of your load path in development mode, so that your revisions would always get reloaded first... But then it occurred to me that you said something confusing.

    The model you're trying to extend. It's in a plugin? Plugins aren't supposed to be reloaded by default in development mode, unless the app explicitly says they should in its configuration by setting Config.reload_plugins? to false.

    But if, for some reason, your plugin is reloading anyway and you don't want it to, you can put this in your plugin's init.rb to explicitly say it shouldn't reload:

    Dependencies.load_once_paths << lib_path
    

    See the Rails docs on the Configuration class for more detail: http://api.rubyonrails.org/classes/Rails/Configuration.html#M002536

提交回复
热议问题