Salve a tutti,
Mi scuso per l’oggetto poco chiaro ma, al momento, non ho saputo trovare
di meglio.
Inizio descrivendo dapprima ciò che vorrei ottenere.
- All’utente viene mostrato una richiesta di nr badge (non c’è un
modello associato) - Successivamente, viene mostrato un form chiedendo di inserire altri
dati
2.1 In questo form, viene data la possibilità all’utente di aggiungere
un titolare (obbligatorio per il modello legato al form) della
transazione
Il form di cui al punto 2, è legato ad un modello denominato “Trace”.
Questo modello, ha una serie di validate_presence_of tra le quali spicca
anche una sul “titolare” della transazione.
Ciò implica che non posso salvare la transazione se, tra le altre cose,
non
è stato associato un titolare alla stessa.
L’azione che viene invocata si chiama “ingresso_uscita” ed è definita
come segue:
def ingresso_uscita
@trace = params[:traccia].blank? ? nil : Trace.new(params[:traccia])
if request.xhr?
if !params[:badge].blank?
@trace = Trace.find_by_badge(params[:badge])
if @trace.nil?
@trace = Trace.new
@trace.inizio = Time.now
@trace.badge = params[:badge]
@clienti = Client.find_by_sql(‘select * from clients where id
not in (select client_id from traces where fine is null)’)
end
else
@trace.client_id = params[:id]
@trace.nr_abbinati = 1
end
render :update do |page|
page.visual_effect :highlight, ‘ingresso_uscita_form’
page.replace_html ‘ingresso_uscita_form’, :partial =>
‘form_ingressouscita’
end
end
end
La prima volta che viene chiamata, viene mostrato il form di cui al
punto 1.
Inserito il nr badge, alla conferma, l’azione viene richiamata e crea
un’istanza che finisce nella variabile @trace.
A questo punto, quando l’utente clicca sul link generato da:
<%= link_to_remote(“Titolare”, :url => { :controller => “main”, :action
=> “ingresso_uscita”, :id => cliente.id }) %>
Ciò che vorrei avvenisse è che, tramite XHR, la richiesta giungesse
all’azione
“ingresso_uscita”, ed il titolare selezionato venisse aggiunto
all’istanza
memorizzata in @trace.
Ciò, purtroppo, non avviene perchè tra due successive chiamate di
“ingresso_uscita”, l’istanza memorizzata in @trace svanisce.
Ho provato a serializzarne gli attributi e passarli come parametro
tramite
link_to_remote ma solo params[:id] figura tra i parametri.
Come faccio?
Ringrazio in anticipo per il Vs aiuto