要让你的类方法变得私有,你需要使用 private_class_method :method_name
或者把你的私有类方法放到class << self
block 中:
class Foo class << self private def bar puts 'Class method called' end end def self.baz puts 'Another class method called' end private_class_method :bazendFoo.bar # => NoMethodError: private method `bar' called for Foo:ClassFoo.baz # => NoMethodError: private method `baz' called for Foo:Class