вы можете изменить аргументы метода, чтобы разрешить какой-то необязательный параметр 'pass to parent'.в суперклассе вашего ребенка проверьте этот параметр и, если так, вызовите super из этого метода и вернитесь, в противном случае разрешите выполнение продолжить.
class Grandparent; def method_name(opts={}); puts "Grandparent called."; end; end
class Parent < Grandparent
def method_name(opts={})
return super if opts[:grandparent]
# do stuff otherwise...
puts "Parent called."
end
end
class Child < Parent
def method_name(opts={})
super(:grandparent=>true)
end
end
ruby-1.9.2-p0 > Child.new.method_name
Grandparent called.
=> nil
в противном случае я согласен с @Femaref, просто b / cчто-то возможно не значит, что это хорошая идея.Пересмотрите свой дизайн, если считаете, что это необходимо.