# Problema salvataggio relazioni 1 a 1

**URL:** <https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163>\
**Category:** IT\
**Created:** [January 25, 2008, 5:37pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163 "2008-01-25T17:37:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 25, 2008, 5:37pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/1 "2008-01-25T17:37:24Z")

</div>

Salve a tt, Ã¨ da un po che sto sviluppando un questionario on-line in  
rails ora, il mio problema Ã¨ che non riesco a far salvare i dati  
all’interno del database. Premettendo che sto utilizzando la versione  
1.2.5 di Rails e 1.8.5 di gem, il mio problema Ã¨ che quando vado a  
salvare all’interno del db mi viene generato questo messaggio d’errore:

Mysql::Error: Column ‘questionario\_id’ cannot be null: INSERT INTO  
dati\_personalis (`azienda`, `contatto`, `questionario_id`, `cognome`,  
`nome`, `created_at`) VALUES(‘Azienda SRL’, ‘023543454’, NULL, ‘Rossi’,  
‘Mario’, ‘2008-01-25 17:19:03’)

in pratica le info vengono matenute in un cookie, dopo di che vengono  
richiamate e salvate in delle varibili d’istanza, il problema e’ che  
questionario\_id e’ nullo e quindi i record non vengono salvati. Il  
codice del controller e’:

def salvataggio\_globale

@sessione = trova\_sessione

@dati\_personali = DatiPersonali.new  
questionario = Questionario.new

@dati\_personali = @sessione.ritorna\_dati  
@questionario = @sessione.ritorna\_questionario

unless @dati\_personali.save!

```
@questionario.dati_personali = @dati_personali#salvataggio

redirect_to(:action => 'index')

```

end

end

in cosa sbaglio? Ho letto che sÃ¨ esiste un tipo di relazione 1 ad 1 tra  
due tabelle bisogna dichiarare il model della tabella che contiene la  
chiave esterna belong\_to :nome\_modello\_tabella\_figlia e per il model  
della tabella figlia has\_one :nome\_modello\_tabella\_padre.

---

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 26, 2008, 8:11pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/2 "2008-01-26T20:11:41Z")

</div>

Nessuna idea a riguardo? Volevo almeno avere conferma che la procedura  
di salvataggio per questo tipo di relazione fosse corretta…

---

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 27, 2008, 8:11am UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/3 "2008-01-27T08:11:25Z")

</div>

Ettore J. r. wrote:

> Nessuna idea a riguardo? Volevo almeno avere conferma che la procedura  
> di salvataggio per questo tipo di relazione fosse corretta…

Il problema probabilmente e’ nella migrazione della tabella  
dati\_personalis, che contiene il campo questionario\_id dichiarato con  
l’opzione :null =\> false

Con questa opzione, quando salvi l’oggetto @dati\_personali la relazione  
deve essere giÃ impostata.

Quindi nel tuo caso la procedura corretta richiederebbe:

- che l’oggetto @questionario sia salvato prima di @dati\_personali (e  
questo non Ã¨ chiaro dal tuo codice, dove il questionario sembra preso  
dalla sessione come oggetto pre-esistente, ma giÃ salvato o no?), e

- che @dati\_personali.questionario sia impostato prima di  
@dati\_personali.save! : si tratta di impostare la relazione dalla parte  
opposta, che tra l’altro ti salva un UPDATE su db

P.S. PerchÃ¨ quelle due linee di codice?

> @dati\_personali = DatiPersonali.new  
> questionario = Questionario.new  
> Sembrano inutili, visto che nelle due righe successive prendi i dati  
> dalla sessione

---

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 27, 2008, 12:03pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/4 "2008-01-27T12:03:05Z")

</div>

Era proprio come dicevi tu, la relazione andava impostata prima e  
@questionario non veniva salvato.  
Il problema Ã¨ che all’interno del testo in cui sto studiando il  
salvataggio Ã¨ spiegato in maniera errata e quindi per me era difficile  
capire. A tal proposito hai qualche testo un po piÃ¹ valido da  
consigliarmi? Non vorrei di nuovo incorrere in errori di questo tipo…

Grazie per l’aiuto, saluti.

---

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 27, 2008, 2:37pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/5 "2008-01-27T14:37:47Z")

</div>

Ettore J. r. wrote:

> A tal proposito hai qualche testo un po piÃ¹ valido da  
> consigliarmi? Non vorrei di nuovo incorrere in errori di questo tipo…

Io ho studiato qualche anno fa sull’originale:

Dave T., David Heinemeier H.  
“Agile Web D. with Rails”  
([Pragmatic Bookshelf: By Developers, For Developers](http://www.pragprog.com/titles/rails2))

e l’ho trovato ottimo.  
So che e’ uscita una versione aggiornata, ma prima di Rails 2.0.  
Forse ora e’ meglio andare su:

Obie F.  
“The Rails Way”  
([http://www.amazon.co.uk/Rails-Way-Enterprise-Addison-Wesley-Professional/dp/0321445619](http://www.amazon.co.uk/Rails-Way-Enterprise-Addison-Wesley-Professional/dp/0321445619))

Non l’ho letto di persona, ma su web ci sono ottime critiche.

Cmq leggiti questo post sul forum:  
[http://www.ruby-forum.com/topic/140235#new](http://www.ruby-forum.com/topic/140235#new)

---

<div class="post-metadata">

**Author:** ![pacionno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/5f9b8f/32.png) [@pacionno](https://www.ruby-forum.com/u/pacionno)\
**Post date:** [January 27, 2008, 4:45pm UTC](https://www.ruby-forum.com/t/problema-salvataggio-relazioni-1-a-1/127163/6 "2008-01-27T16:45:58Z")

</div>

ciao  
io sto leggendo the rails way,  
è estremamente affascinante e stimolante come libro,  
non è un libro per principianti per un paio di motivi

1. c’e un lungo elenco di prerequisiti sulle conoscenze di base
2. ispirandosi a the Ruby Way non c’è il codice funzionante ma solo  
le righe che servono per spiegare il concetto

Dopo essere arrivato al terzo capitolo,  
ho sospeso e ho iniziato the ruby way  
Ciao Paolo
