Rails"不是模块"错误

riz*_*oro 24 ruby ruby-on-rails

我在"lib"rails目录上构建了一个库.库的结构是这样的:

 lib/insurance/broker/fake_broker.rb
Run Code Online (Sandbox Code Playgroud)

该类看起来像以下示例:

module Insurance
  module Broker
    class FakeBroker
      def initialize(user_id, user_secret)
        @user_id = user_id
        @user_secret = user_secret
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

所以,在我的result_controller中,我这样做:

require 'insurance/broker/fake_broker'

 def show
   broker = Insurance::Broker::FakeBroker.new(1234,1234)
 end
Run Code Online (Sandbox Code Playgroud)

但Rails返回此错误:

Insurance is not a module
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

Dan*_*ski 49

Ruby告诉你它找到了Insurance,但它不是一个模块.也许你已经定义了一个Insurance

根据周围的代码,如果通过添加双冒号"重置"命名空间,它可能会有所帮助:

broker = ::Insurance::Broker::FakeBroker.new(1234,1234)
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,双冒号也无济于事,因为模型也处于顶层. (3认同)
  • Yeaappp.那就是问题!我有一个模特保险.谢啦! (3认同)
  • 听起来很合乎逻辑……也许您也有一个名为 Insurance 的 Rails 模型? (2认同)