假设我有一个类XXXPriceDocument可能有一个内部类LargePackageCharge,如何检查它是否有?

最佳答案

你可以:

XXXPriceDocument.constants.include?(:LargePackageCharge)


defined?(XXXPriceDocument::LargePackageCharge)


XXXPriceDocument.const_defined?(:LargePackageCharge)

它在rails中变得稍微复杂一些,因为常量可能还没有加载你需要通过以下方式来解决这个问题:
class Module
  def const_exists?(mod)
    !!const_get(mod)
  rescue NameError
    false
  end
end

XXXPriceDocument.const_exists?(:LargePackageCharge)

关于ruby-on-rails - 检查类(class)是否有嵌套类(class)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26140501/

10-12 06:58