# Re: View personalizzate

**URL:** <https://www.ruby-forum.com/t/re-view-personalizzate/133568>\
**Category:** IT\
**Created:** [April 1, 2008, 7:04pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568 "2008-04-01T19:04:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![matte\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4da419/32.png) [@matte\_S](https://www.ruby-forum.com/u/matte_S)\
**Post date:** [April 1, 2008, 7:04pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568/1 "2008-04-01T19:04:30Z")

</div>

Stefano C. wrote:

> 1. inizializza un Address usando la relazione @contact.addresses (per  
> impostare la foreign key automaticamente)

Penso di avere dei problemi qui, il browser mi comunica che:  
undefined method `vaccinations’ for #Patient:0xb74230bc

tieni conto che io ho (trasformazione di patient\<–\>vaccine, relazione  
molti a molti)

patient --\> vaccination \<-- vaccine

vaccination praticamente contiene la chiave del paziente e la chiave del  
vaccino, quindi un paziente puo’ avere piu’ vaccinazioni.

Sto cercando di creare un paziente e che mi venga chiesto appunto di  
selezionare quali vaccini ha fatto (ovviamente poi il problema si  
ampliera’ ma una volta capito come fare questo, non avro’ piu’  
problemi).

Ho quindi:  
class Patient \< ActiveRecord::Base  
has\_many :vaccination  
end  
class Vaccination \< ActiveRecord::Base  
belongs\_to :patient  
belongs\_to :vaccine  
end  
class Vaccine \< ActiveRecord::Base  
has\_many :vaccination  
end

class PatientsController \< ApplicationController  
def new  
@patient = Patient.new  
@vaccination = Vaccination.new  
end  
def create  
@patient = Patient.new(params[:patient])  
if @patient.save  
@vaccination = @patient.vaccinations.build(params[:vaccination])  
if @vaccination.save  
redirect\_to contact\_url(@contact) and return  
end  
end  
render :action =\> “new”  
end  
end

# New patient

\<% form\_for @patient do |f| %\>  
\<%= error\_messages\_for(“patient”) %\>

First name: \<%= f.text\_field(:nome) %\>

Last name: \<%= f.text\_field(:cognome) %\>

 \<% fields\_for @vaccination do |v| %\> \<%= error\_messages\_for("vaccination") %\> 

a: \<%= v.text\_field(:data) %\>

c: \<%= v.text\_field(:vaccine\_id) %\>

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

\<%= link\_to ‘Back’, patients\_path %\>

Dove e’ l’errore? Grazie mille per l’aiuto sono 2 giorni che ci sbatto  
la testa, orami penso di esserci grazie al vostro aiuto!!!

Buona serata

---

<div class="post-metadata">

**Author:** ![matte\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4da419/32.png) [@matte\_S](https://www.ruby-forum.com/u/matte_S)\
**Post date:** [April 1, 2008, 7:28pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568/2 "2008-04-01T19:28:46Z")

</div>

On Apr 1, 2008, at 7:03 PM, Matteo Buferli wrote:

> Ho quindi:  
> class Patient \< ActiveRecord::Base  
> has\_many :vaccination  
> end

has\_many :vaccinations

S.

---

<div class="post-metadata">

**Author:** ![matte\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4da419/32.png) [@matte\_S](https://www.ruby-forum.com/u/matte_S)\
**Post date:** [April 1, 2008, 9:03pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568/3 "2008-04-01T21:03:18Z")

</div>

Veramente preciso e cordiale, ti ringrazio tantissimo, risolvendi questi  
piccoli problemi mi stai aiutando tantissimo nel capire il  
funzionamento di questo stupendo framework.

Abuso della tua gentilezza:  
undefined method `contact\_url’ for #PatientsController:0xb7af5d40

Buonaserata a tutti!

---

<div class="post-metadata">

**Author:** ![matte\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4da419/32.png) [@matte\_S](https://www.ruby-forum.com/u/matte_S)\
**Post date:** [April 1, 2008, 9:06pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568/4 "2008-04-01T21:06:53Z")

</div>

On Apr 1, 2008, at 9:02 PM, Matteo Buferli wrote:

> Veramente preciso e cordiale, ti ringrazio tantissimo, risolvendi  
> questi  
> piccoli problemi mi stai aiutando tantissimo nel capire il  
> funzionamento di questo stupendo framework.
> 
> Abuso della tua gentilezza:  
> undefined method `contact\_url’ for #PatientsController:0xb7af5d40

In route.rb hai definito

map.resources :contacts

?

S.

---

<div class="post-metadata">

**Author:** ![matte\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4da419/32.png) [@matte\_S](https://www.ruby-forum.com/u/matte_S)\
**Post date:** [April 2, 2008, 9:57pm UTC](https://www.ruby-forum.com/t/re-view-personalizzate/133568/5 "2008-04-02T21:57:32Z")

</div>

Scusa la mancata risposta, ora va tutto. Vediamo se ho capito un po’ di  
cose, questo controller:  
def create  
@patient = Patient.new(params[:patient])  
if @patient.save #salva database  
@vaccination = @patient.vaccinations.build(params[:vaccinations])  
if @vaccination.save  
redirect\_to patient\_url(@patient) and return  
end  
end  
render :action =\> “new”  
end

Crea un paziente (lasciamo stare i controlli sulle transazioni) e una  
vaccinazione, completando poi le 2 tabelle.

Ora se volessi nella view visualizzare per ogni paziente tutte le  
possibili vaccinazioni, e fare un check\_box per ogni vaccinazione  
possibile, al momento del save ora come ora non salverei piu’  
vaccinazioni o si?  
Esempio: paziente mario rossi (id 1), vaccinazioni a (id 2) b (id 3) c  
(id 4).  
tabelle:  
paziete  
1 mario rossi

vaccini  
1 z  
2 a  
3 b  
4 c

vaccinazioni  
patient\_id vaccini\_id  
1 2  
1 3  
1 4

La semplice modifica al controller mi basterebbe o anche alla view  
dovrei cambiare?

Ti ringrazio ancora, purtroppo ho ricevuto in questo anno universitario  
immense nozioni di database ma nessuna su questo ottimo framework, mi  
affido alla vostra cortesia e pazienza, ringraziandovi davvero tanto  
(se siete di bologna vi offro anche una colazione o un pranzo :D)
