2013-05-13 29 views
18

Tôi muốn kế thừa một lớp con từ lớp cha.Tên liên tục không xác định của RubyMỗi tên lớp

Đây là mã của tôi. 3 lớp được tạo trong 3 tệp riêng biệt.

class Transportation 
#codes 
end 

class Plane < Transportation 
#codes 
end 

class Boat < Transportation 
#codes 
end 

Và khi tôi đang chạy mã này, tôi đã nhận lỗi cho thuyền, nhưng không có vấn đề đối với máy bay khi tôi chỉ có Plane tạo:

uninitialized constant Transportation (NameError) 

bất cứ ai có thể giúp tôi với vấn đề này?

Cảm ơn

+0

Mã nào gây ra lỗi? – jason328

+0

hiển thị mã của bạn nếu có thể – sunny1304

+0

Tôi đã cố gắng tạo một lớp thực sự đơn giản và cùng một lỗi, vì vậy không có gì liên quan đến mã. cảm ơn –

Trả lời

30

Không có lý do cho mã này thất bại, trừ khi định nghĩa của Transportation là trong tập tin khác.

Nếu trường hợp này xảy ra và các tệp này nằm trong các tệp khác nhau, đừng quên yêu cầu tệp có lớp Transportation trước tệp kia với mức sử dụng trong đó.

Như bạn đã đề cập, có ba tệp khác nhau.

Bạn có thể tạo tệp có thư viện bắt buộc. Có lẽ nó nằm trong tệp bin/transport_simulator.rb của bạn.

require 'transportation' 
require 'boat' 
require 'plane' 

Bây giờ, chúng sẽ được yêu cầu theo đúng thứ tự và các tệp có lớp con Giao thông vận tải sẽ biết về lớp đó.

+0

yea, ur right, mã hoạt động sau khi tôi yêu cầu Giao thông vận tải, nhưng bạn có biết tại sao tôi không cần phải làm điều này khi tôi chỉ có máy bay được tạo ra và kế thừa từ Giao thông vận tải? Cảm ơn bạn. –

+0

Phương tiện giao thông và máy bay có trong cùng một tệp không? – vgoff

+0

không, ba tệp riêng biệt cho ba lớp –

Các vấn đề liên quan