30

我在“lib”rails 目录上建立了一个库。库的结构是这样的:

 lib/insurance/broker/fake_broker.rb

该类类似于以下示例:

module Insurance
  module Broker
    class FakeBroker
      def initialize(user_id, user_secret)
        @user_id = user_id
        @user_secret = user_secret
      end
    end
  end
end

因此,在我的 result_controller 中,我正在这样做:

require 'insurance/broker/fake_broker'

 def show
   broker = Insurance::Broker::FakeBroker.new(1234,1234)
 end

但 Rails 返回此错误:

Insurance is not a module

这里有什么问题?

4

2 回答 2

60

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

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

broker = ::Insurance::Broker::FakeBroker.new(1234,1234)
于 2012-10-01T20:56:54.040 回答
0

一种可能性可能是这样的错误,即在目录级别,一个类也存在同名,因此它将引用该类。请检查目录。

于 2021-09-20T17:12:14.313 回答