Tôi có những file sau:Làm thế nào tôi có thể mở rộng một lớp ruby từ một lớp được định nghĩa trong một mô-đun?
file.rb
require_relative 'foo/bar'
baz = Foo::Stuff::Baz.new
# do stuff
foo/bar.rb
require_relative 'stuff/baz'
module Foo
class Bar
def initialize
# do stuff
end
end
end
foo/stuff/baz.rb
module Foo
module Stuff
class Baz < Bar
end
end
end
tôi nhận được lỗi sau:
`': uninitialized constant Foo::Stuff::Bar (NameError)
Có điều gì tôi đang làm sai ở đây không? Điều này thậm chí có thể trong Ruby? Trong trường hợp nó quan trọng, tôi chỉ làm điều này bởi vì tôi cần phải kế thừa phương thức khởi tạo cụ thể.
Đúng, bạn đã đúng. Vấn đề là tôi yêu cầu foo/stuff/baz.rb trong foo/bar.rb. Tôi đang đánh dấu câu trả lời của bạn là câu trả lời chính xác. – sluther