2013-05-13 9 views
18

Desidero ereditare una sottoclasse da una classe padre.Nome costante non inizializzato RubyErrore per Nome classe

Ecco il mio codice. 3 classi sono create in 3 file separati.

class Transportation 
#codes 
end 

class Plane < Transportation 
#codes 
end 

class Boat < Transportation 
#codes 
end 

E quando ho girato questo codice, ho ottenuto l'errore per la barca, ma nessun problema per aereo in cui ho solo aereo creato:

uninitialized constant Transportation (NameError) 

Qualcuno mi può aiutare con questo problema?

Grazie

+0

Qual è il codice che causa l'errore? – jason328

+0

mostra il tuo codice, se possibile – sunny1304

+0

Ho provato a creare una classe veramente semplice e lo stesso errore, quindi non ha nulla a che fare con il codice. grazie –

risposta

30

Non c'è alcuna ragione per questo codice di fallire, a meno che la definizione di Transportation è in un altro file.

Se questo è il caso, e questi sono in file diversi, non dimenticare di richiedere il file con la classe Transportation prima dell'altro file con l'utilizzo in esso.

Come hai detto, ci sono tre file diversi.

È possibile creare un file con le librerie richieste. Forse è nel tuo file bin/transport_simulator.rb.

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

Ora saranno tenuti nel giusto ordine, e i file con le classi che sottoclasse Trasporti saprà di quella classe.

+0

sì, giusto, i codici funzionano dopo che ho richiesto il trasporto, ma sai perché non devo farlo quando ho solo hanno creato Plane ed ereditato da Transportation? Grazie. –

+0

I trasporti e il piano sono nello stesso file? – vgoff

+0

no, tre file separati per tre classi –

Problemi correlati