本文介绍了我将文件夹从 lib 移动到 rails 6 中的/app,由于加载路径问题,我似乎仍然无法实例化对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个新的 rails 6 应用程序,在 lib 文件夹中我有这个:

I have a new rails 6 application and in the lib folder I had this:

/lib/some_app_name/stripe/subscription/subscription_service.rb

/lib/some_app_name/stripe/subscription/subscription_service.rb

module Someappname # Someappname is also in my application.rb 
  module Stripe
    class SubscriptionService
      def initialize(a)
        @a = a
      end
    end
  end
end

然后我将some_app_name"文件夹移动到:

I then moved the 'some_app_name' folder to:

/app/some_app_name/stripe/subscription_service.rb

/app/some_app_name/stripe/subscription_service.rb

我读到/app 中的任何内容都会自动加载和重新加载,所以我搬到了这里.它也不能在/lib 中工作.

I read that anything inside of /app will be autoloaded and reloaded so I moved in here. It wasn't working in /lib also.

在我的 home_controller.rb 中我试过这个:

In my home_controller.rb I tried this:

ss = Someappname::Stripe::SubscriptionService.new("a")

我收到一条错误消息:

未初始化的常量 Someappname::Stripe::SubscriptionService

我在这里做错了什么?

推荐答案

我怀疑是 spring,试试这个

bin/spring stop

然后启动rails console,停止Spring会强制Rails重新加载你的应用

And then start rails console, stopping Spring will force Rails to load your app fresh

另外,

如果你的模块名称是Someappname,那么目录名应该是app/someappname 而不是some_app_name

if the name of your module is Someappname, then the directory name should be app/someappname and not some_app_name

希望有帮助!

这篇关于我将文件夹从 lib 移动到 rails 6 中的/app,由于加载路径问题,我似乎仍然无法实例化对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 20:56