要在Ruby on Rails中以编程方式找到命名空间/模块名称,您可以使用以下方法:
Module
类的name
方法:module MyNamespace
class MyClass
def self.get_namespace
self.to_s.split('::')[0]
end
end
end
MyNamespace::MyClass.get_namespace # 返回 "MyNamespace"
Module
类的parent
方法(Ruby 2.0及更高版本):module MyNamespace
module MySubNamespace
class MyClass
def self.get_namespace
self.parent.name
end
end
end
end
MyNamespace::MySubNamespace::MyClass.get_namespace # 返回 "MyNamespace::MySubNamespace"
Module
类的parents
方法(Ruby 2.7及更高版本):module MyNamespace
module MySubNamespace
class MyClass
def self.get_namespace
self.parents[1].name
end
end
end
end
MyNamespace::MySubNamespace::MyClass.get_namespace # 返回 "MyNamespace::MySubNamespace"
这些方法可以帮助您在Ruby on Rails中以编程方式找到命名空间/模块名称。
领取专属 10元无门槛券
手把手带您无忧上云