No superclass method when calling super in define_method
ruby
Solution
It's not working because you overwrite #talk. Try this
class Foo
def talk(who, what, where)
p "#{who} is #{what} at #{where}"
end
end
Foo.new.talk("monster", "jumping", "home")
class Bar < Foo
define_method(:talk) do |*params|
super(*params)
end
end
Bar.new.talk("monster", "table", "home")
Problem
- Why do I get the following error `talk: super: no superclass method talk (NoMethodError)` when I override a method that already exists? - How could I fix this code to call the super method? Here is the sample code I'm using ``` class Foo def talk(who, what, where) p "#{who} is #{what} at #{where}" end end Foo.new.talk("monster", "jumping", "home") class Foo define_method(:talk) do |*params| super(*params) end end Foo.new.talk("monster", "jumping", "home") ```