Ciao a tutti,
avrei bisogno di un piccolo aiutino se possibile(sono una principiante
con Rails);
nella mia applicazione, quando un utente clicca un link_to dovrei
mostrare una form in una finestra di popup.
Tale popup si deve chiudere quando invio i dati della form.
Qualcuno sa darmi qualche dritta?
Se non utilizzo la finestra di popup come potrei risolvere il problema
della perdita dei dati già inseriti in una form quando passo ad
un’altra?
Grazie mille a tutti anticipatamente.
2008/6/3, Catiana T. [email protected]:
un’altra?
Se devi mantenere i dati da una pagina all’altra, hai l’oggetto params,
che
non è nient’altro che un array associativo contenente i dati provenienti
dal
form della pagina precedente.
Grazie mille a tutti anticipatamente.
Il 03/06/08, Catiana T. [email protected] ha scritto:
<%= submit_tag 'Conferma' %>
Io sto inserendo i dati di un nuovo passegero, voglio associare a questo
passeggero un veicolo(gia’ presente nel database); una volta effettuata
la ricerca voglio tornare alla form di inserimento passegero.
L’oggetto params[:passenger] comunque e’ nil, perche’ credo che si
riempia quando clicco sul tasto ‘Conferma’
Grazie mille.
quando invii il form, i parametri vengono inviati all’azione index del
controller veichles, se tu in quell’azione hai un form come quello di
adesso, dovresti avere i campi già compilati
–
Grazie per il suggerimento, pero’ non funziona…forse sbaglio qualcosa.
Ti spiego meglio il problema:
<% form_tag :action => “create” do %>
Nome
<%=text_field :passenger, :name %>
Cognome
<%= text_field :passenger, :surname %>
...
<%= link_to 'Search vehicle', {:action=>"index",
:controller=>"vehicles"} %>
...
<%= submit_tag 'Conferma' %>
Io sto inserendo i dati di un nuovo passegero, voglio associare a questo
passeggero un veicolo(gia’ presente nel database); una volta effettuata
la ricerca voglio tornare alla form di inserimento passegero.
L’oggetto params[:passenger] comunque e’ nil, perche’ credo che si
riempia quando clicco sul tasto ‘Conferma’
Grazie mille.
quando invii il form, i parametri vengono inviati all’azione index del
controller veichles, se tu in quell’azione hai un form come quello di
adesso, dovresti avere i campi gi� compilati
–
La form di ricerca del veicolo e’ la seguente:
Search Vehicle
<%= error_messages_for :vehicle %>
<% form_tag :action=>“search” do %>
Plate
<%= text_field :vehicle,:plate, :limit=> 10 %>
<%= submit_tag "Search" %>
<% end %>
Al click sul tasto Search io recupero l’id del veicolo cercato e dovrei
inviarlo alla form di inserimento passeggero; per questo utilizzo
l’oggetto session in questo modo:
controllers/vehicles_controller.rb
def search
@vehicle = Vehicle.find(:first,
:conditions=>[“plate=?”,params[:vehicle][:plate]])
redirect_to :action => “new”, :controller=>“passengers”
session[:id_vehicle] = @vehicle.id
end
Ora tornando alla pagina di inserimento passengero perdo le informazioni
precedentemente inserite, tipo il nome ed il cognome del passegero.
Quando cerco il veicolo da associare al passegero io non ho ancora
salvato i dati del mio nuovo passegero sul database, non quindi ancora
cliccato il tasto Conferma.
Grazie per l’interessamento.
Ciao ciao
Il 03/06/08, Catiana T. [email protected] ha scritto:
<%= submit_tag "Search" %>
<% end %>
Mi sembra un pò intricato come procedimento e forse non ho ben capito
cosa
vuoi fare, comunque in questo ultimo form hai accesso ai dati del
precedente, ma se lo invii li perdi (ovviamente). Potresti salvarli
dentro
un hidden field se ti serve.
Al click sul tasto Search io recupero l’id del veicolo cercato e dovrei
Catiana T. wrote:
def search
@vehicle = Vehicle.find(:first,
:conditions=>[“plate=?”,params[:vehicle][:plate]])
redirect_to :action => “new”, :controller=>“passengers”
session[:id_vehicle] = @vehicle.id
end
Quest’azione deve anche rileggere il passeggero e metterlo in @passenger
perché
le varie <%=text_field :passenger, :name %> dell’altro form prendono i
valori di default proprio da @passenger.
La somiglianza tra @passenger e l’argomento :passenger della text_field
non è un caso. Cito la documentazione di Rails:
text_field(:post, :title, :size => 20)
equivale a
Probabilmente dovrai passare l’id del passeggero alla search dei veicoli
o memorizzare l’id nella session[] (suggerisco la prima opzione).
Ciao
Paolo
Ma io farei scegliere il veicolo mentre si riempie il primo form e
perchè non fare qualcosa di figo in ajax??
oppure, se la scelta non è molto complessa, caricare una collection
select:
collection_select(object, method, collection, value_method, text_method,
options = {}, html_options = {})
(guarda la documentazione per gli esempi http://api.rubyonrails.com/)
Ecco cosa verrebbe nella vista (però non l’ho testata), eventualmente
puoi filtrare la lista dei veicoli:
collection_select :vehicle_id, Vehicle.find(:all), :id, :plate