[ruby-it] undefined method store for nil:NilClass (NoMethodError)
Gendag
gendag a gmail.com
Mar 17 Apr 2007 09:42:49 CEST
Mauro Sanna wrote:
> Il giorno lun, 16/04/2007 alle 16.52 +0200, Mauro Sanna ha scritto:
>> Perche' mi da l'errore di cui all'oggetto?
>>
>> class prova
>>
>> @dir = {}
>> @a = []
>> @dir_spediti = {}
>> @dir_ricevuti = {}
>> def acquisisciAccounts
>> IO.foreach("file.txt") do |riga|
>> codice,cognome,nome,servizio,mail = riga.chomp.split(/\t/)
>> @dir.store("#{mail}","#{cognome} #{nome}")
>> @dir_spediti.store("#{mail}",0)
>> @dir_ricevuti.store("#{mail}",0)
>> end
>> end
>> end
L'errore ti avvisa che la classe nil:NilClass non ha un metodo chiamato
store.Ora: tu dove usi questo metodo? Lo usi nelle righe:
>> @dir.store("#{mail}","#{cognome} #{nome}")
>> @dir_spediti.store("#{mail}",0)
>> @dir_ricevuti.store("#{mail}",0)
Quindi vuol dire che o @dir e/o @dir_spediti e/o @dir_ricevuti sono nil
e siccome nil non ha il metodo store, ecco perche' ti da l'errore.
Il motivo per cui queste variabili sono nil e non inizializzate nasce,
probabilmente, dal fatto che le hai inizializzate nel modo sbagliato,
le istance variable le dovresti inizializzare dentro il metodo initialize:
class prova
def initialize
@dir = {}
@a = []
@dir_spediti = {}
@dir_ricevuti = {}
end
def acquisisciAccounts
IO.foreach("file.txt") do |riga|
codice,cognome,nome,servizio,mail = riga.chomp.split(/\t/)
@dir.store("#{mail}","#{cognome} #{nome}")
@dir_spediti.store("#{mail}",0)
@dir_ricevuti.store("#{mail}",0)
end
end
end
ciao!
Gendag
Maggiori informazioni sulla lista
Ml