Корневой класс Отгрузка хочет записать всех своих детей. Но когда класс Grandchild наследуется от ребенка Shipping, возникает ошибка. Кто-нибудь знает, почему это происходит? Заранее спасибо.Метод рубинового крючка унаследовал родственный - Почему @children изменился на нуль?
Код:
class Shipping
@children = []
def self.inherited(child)
puts "#{child.name} inherit Shipping"
@children << child
end
def self.show_children
p @children
end
end
class Child1 < Shipping
end
class Child2 < Shipping
end
class Grandchild < Child2
end
Shipping.show_children
Результат:
$ jruby temptry.rb
Child1 inherit Shipping
Child2 inherit Shipping
Grandchild inherit Shipping
NoMethodError: undefined method `<<' for nil:NilClass
inherited at temptry.rb:5
(root) at temptry.rb:18
Я изменяю @ на @@, это действительно работает. Большое спасибо. :-) – uncutstone