Ciao a tutti,
Devo caricare tramite csv dei dati un due modelli in relazione tra loro
address(name, surname, email) has_many options(key, value)
Il codice che uso e questo e dalla console mi funziona correttamente....
csv = CSV.parse(params[:file].read, :headers => true)
csv.each do |row|
row = row.to_hash.with_indifferent_access
address = @campaign.addresses.new(email: row['email'], name:
row['name'], surname: row['surname'])
(row.keys - ['email','name','surname']).each {|k|
address.options.build( key: k, value: row[k])}
address.save
end
Ma nel momento in cui lo metto nel controller cambia idea: se gli faccio
fare anche il build delle opzioni mi restituisce un runtime error:
can't modify frozen String: INSERT INTO "options" ("address_id",
"created_at", "key", "updated_at", "value") VALUES (?, ?, ?, ?, ?)
Commentando la riga delle opzioni lavora tranquillamente.
Non capisco, sopratutto il perche` mi funziona da console, immagino che
ci siano piu` controlli in development che in console ma non capisco
quali.
Ciao a tutti
Andrea
on 2012-11-03 10:48
on 2012-11-04 05:50
Mi sono svegliato alle cinque con la soluzione (chi l'avrebbe mai detto che un giorno al mio risveglio avrei visto stringhe invece di favole e fate). Fallisce nella conversione della chiave in stringa. Ho cambiato k in String.new(k) ottenendo un nuovo oggetto invece di una alterazione dell'oggetto congelato. Non mi e` ancora chiaro perche` nella console funzionasse ma posso svegliarmi con proprio tutte le soluzioni. Mi scuso per i periodi infausti, ma non sono completamente sveglio e torno a dormire :) Andrea
on 2012-11-04 12:38
Il giorno 04 novembre 2012 05:50, Andrea Ranaldi <andrea.ranaldi@gmail.com>ha scritto: > Mi sono svegliato alle cinque con la soluzione (chi l'avrebbe mai detto > che un giorno al mio risveglio avrei visto stringhe invece di favole e > fate). > :-)) Buon segno (o cattivo segno ... chi lo sa ;) E' la passione che ci guida (cit.) Fallisce nella conversione della chiave in stringa. Ho cambiato k in > String.new(k) ottenendo un nuovo oggetto invece di una alterazione > dell'oggetto congelato. > > Non mi e` ancora chiaro perche` nella console funzionasse ma posso > svegliarmi con proprio tutte le soluzioni. > > Mi scuso per i periodi infausti, ma non sono completamente sveglio e > torno a dormire :) E speriamo che stavolta il risveglio sia con favole e (belle) fate :-p S.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.