从变量创建类命名空间

时间:2016-11-22 15:30:41

标签: ruby-on-rails ruby ruby-on-rails-5

有没有办法可以从变量组成类命名空间?

例如,假设我想捕获Foo::Bar::MyException内的异常,但Bar位于变量(a = :Bar)中。

这会是Foo::@a::MyException吗?

2 个答案:

答案 0 :(得分:3)

是的,你可以这样做

Foo.const_get(@a)::MyException

答案 1 :(得分:2)

是的,你可以:

module A
  module B
    class C
      def foo
        "bar"
      end
    end
  end
end

variable = "B"
c_instance = Object.const_get("A::#{variable}::C").new
puts c_instance.foo