Auto-loading lib files in Rails 4

前端 未结 4 1759
陌清茗
陌清茗 2020-11-22 16:20

I use the following line in an initializer to autoload code in my /lib directory during development:

config/initializers/custom.rb:

4条回答
  •  爱一瞬间的悲伤
    2020-11-22 16:28

    I think this may solve your problem:

    1. in config/application.rb:

      config.autoload_paths << Rails.root.join('lib')
      

      and keep the right naming convention in lib.

      in lib/foo.rb:

      class Foo
      end
      

      in lib/foo/bar.rb:

      class Foo::Bar
      end
      
    2. if you really wanna do some monkey patches in file like lib/extensions.rb, you may manually require it:

      in config/initializers/require.rb:

      require "#{Rails.root}/lib/extensions" 
      

    P.S.

    • Rails 3 Autoload Modules/Classes by Bill Harding.

    • And to understand what does Rails exactly do about auto-loading?
      read Rails autoloading — how it works, and when it doesn't by Simon Coffey.

提交回复
热议问题