Rails rails c 启动控制台,为何不加载 lib 里面的代码?

flybee · July 25, 2019 · Last by flybee replied at July 29, 2019 · 3093 hits

rails c 启动控制台,为何不加载 lib 里面的代码?不能在控制台里面调用 lib 里面定义的类方法,必须手动 require 一下代码文件路径才行

rails 版本 5.2.3

加载路径配置如下:

config.autoload_paths << Rails.root.join('lib/*')
config.eager_load_paths << Rails.root.join('lib/*')
  • 首先把lib目录加到autoload_pathes config.autoload_paths << Rails.root.join('lib')
  • 其次,文件名要与常量名(类名)对应,因为开发环境 rails 是根据常量名找需要加载哪个文件的,比如使用类Api::V2::UserController, 要在autoload_paths下面有api/v2/user_controller.rb文件才可以。

参考 https://guides.rubyonrails.org/autoloading_and_reloading_constants.html

Reply to gakki

Good! 管用!

Reply to piecehealth

我是按照要求写了

You need to Sign in before reply, if you don't have an account, please Sign up first.