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

flybee · 2019年07月25日 · 最后由 flybee 回复于 2019年07月29日 · 3100 次阅读

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

gakki 回复

Good! 管用!

piecehealth 回复

我是按照要求写了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号