相关疑难解决方法(0)

是否可以为子模块提供与顶级类相同的名称?

背景:

这是问题所在,简化为最小的例子:

# bar.rb
class Bar
end

# foo/bar.rb
module Foo::Bar
end

# foo.rb
class Foo
  include Foo::Bar
end

# runner.rb
require 'bar'
require 'foo'
Run Code Online (Sandbox Code Playgroud)
? ruby runner.rb
./foo.rb:2: warning: toplevel constant Bar referenced by Foo::Bar
./foo.rb:2:in `include': wrong argument type Class (expected Module) (TypeError)
    from ./foo.rb:2
    from runner.rb:2:in `require'
    from runner.rb:2

ruby namespaces module class

27
推荐指数
1
解决办法
7503
查看次数

标签 统计

class ×1

module ×1

namespaces ×1

ruby ×1