Re: View personalizzate

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

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.

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!

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.

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)