# Form con primary key

**URL:** <https://www.ruby-forum.com/t/form-con-primary-key/135381>\
**Category:** IT\
**Created:** [April 21, 2008, 6:53pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381 "2008-04-21T18:53:39Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 21, 2008, 6:53pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/1 "2008-04-21T18:53:39Z")

</div>

Salve, Io ho un piccolo problema.  
io ho il model paziente dove ho impostato il cd come primary\_key  
self.primary\_key = “cf”

nella view new io inserisco tutti i dati in una form fra i quali anche  
il :cf  
la form richiama l’action

Il problema Ã¨ che non mi salva il :cf e mi setta sempre NULL

controller:

def create  
@patient = Patient.new(params[:patient])  
@patient.save

end

view:

\<% form\_for :patient, :url =\> { :action =\> :create } do |f| %\>

**CF**  
 \<%= f.text\_field :cf %\>

**First name**  
 \<%= f.text\_field :first\_name %\>

**Last name**  
 \<%= f.text\_field :last\_name %\>

 \<%= submit\_tag %\> \<% end %\>

dove sbaglio??

grazie

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 21, 2008, 7:05pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/2 "2008-04-21T19:05:12Z")

</div>

Ciao Andrea,  
Probabilmente la primary key è protetta dall’assegnamento massivo.  
Prova con:  
@patient = Patient.new(params[:patient])  
@patient.cf = params[:patient]  
@patient.save

Luca

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 21, 2008, 7:06pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/3 "2008-04-21T19:06:23Z")

</div>

Ops, sbagliato la seconda riga. Dovrebbe essere:  
@patient.cf = params[:patient][:cf]

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 21, 2008, 7:35pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/4 "2008-04-21T19:35:08Z")

</div>

Grazie mille ho risolto.  
Ci ho perso 1 ora  
io avevo provato anche a fare

@patient = Patient.new(params[:patient])  
@patient.cf = params[:cf]  
@patient.save

ma mi restava sempre NULL

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 21, 2008, 9:09pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/5 "2008-04-21T21:09:25Z")

</div>

Di niente, anche a me è capitata una cosa simile, se guardi nel log  
dovrebbe aver generato un Warning.

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 22, 2008, 10:40am UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/6 "2008-04-22T10:40:59Z")

</div>

Andrea,  
io non metterei solo il cf come primary key.  
Anni fa l’Agenzia delle Entrate aveva fatto un pasticcio nel rilascio  
dei cf e esistevano dei duplicati.  
Teoricamente ora dovrebbe essere tutto in ordine, ma la famosa legge di  
Murphy Ã¨ sempre in agguato.

Ciao e buon lavoro

Stefano

Andrea Catalano wrote:

> Salve, Io ho un piccolo problema.  
> io ho il model paziente dove ho impostato il cd come primary\_key  
> self.primary\_key = “cf”

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [April 22, 2008, 9:19pm UTC](https://www.ruby-forum.com/t/form-con-primary-key/135381/7 "2008-04-22T21:19:58Z")

</div>

On Tue, Apr 22, 2008 at 10:40 AM, Stefano F.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Andrea,  
> io non metterei solo il cf come primary key.  
> Anni fa l’Agenzia delle Entrate aveva fatto un pasticcio nel rilascio  
> dei cf e esistevano dei duplicati.  
> Teoricamente ora dovrebbe essere tutto in ordine, ma la famosa legge di  
> Murphy è sempre in agguato.

Vero. Di solito è una buona idea lasciare che rails generi una chiave  
primaria tecnica (id) e tenere la chiave naturale in un normale  
attributo.  
Anche sul libro di Rails cita come esempio il codice ISBN che  
apparentemente  
è una buona scelta come chiave primaria per una tabella di libri, ma  
diventa  
un problema quando i codici ISBN vengono cambiati (cosa che non  
“dovrebbe”  
succedere ma succede.) Se segui le convenzioni di Rails perdi meno  
tempo 🙂
