Tôi muốn tự động tạo phương thức thể hiện của lớp con thông qua phương thức lớp của lớp cha.Làm thế nào để xác định phương pháp thể hiện trong ruby động?
class Foo
def self.add_fizz_method &body
# ??? (This is line 3)
end
end
class Bar < Foo
end
Bar.new.fizz #=> nil
class Bar
add_fizz_method do
p "i like turtles"
end
end
Bar.new.fizz #=> "i like turtles"
Viết gì trên dòng 3?
hầu hết những gì tôi cần. vấn đề là - & block 'tự nên là ví dụ của Bar. vì vậy nó sẽ có thể viết một cái gì đó như thế này: class Bar; add_fizz_method; p self.bar_name; kết thúc ; end –
thử 'p self.class' bên dưới' p 'i like turtles''. 'self' đã là một thể hiện của' Bar'. –
Btw: nếu bạn muốn trả về 'nil' thay vì ném một' NoMethodError' trước khi gọi 'add_fizz_method', bạn có thể khai báo một phương thức' fizz' trống trong lớp 'Foo'. –