Rails e form da array di oggetti


#1

Salve,
Volevo sapere voi come gestireste un modello (diciamo ModelA ), in
relazione :has_many con
un altro modello (diciamo ModelB) , in modo da inserire con un unico
form tutti i dati per ModelA
e i dati per svariate copie di ModelB ?

Grazie

Antonio


#2

ciao,

basta che usi la nomenclatura di rails.

per esempio hai due tabelle Country e City, ogni città ha un solo country
quindi nel modello userai belongs_to :country mentre ogni country può avere
più città e nel modello country metti has_many :city.
una volta fatto questo basta che scrivi una cosa del tipo

Country.find(:all,:include => [:city])

e ti ritroveray con un array do country ognuno contenente il suo array
di
oggetti city.

spero di esser stato abbastanza chiaro.

Andrea

----- Original Message -----
From: “Antonio B.” removed_email_address@domain.invalid
To: removed_email_address@domain.invalid
Sent: Friday, March 30, 2007 9:48 PM
Subject: [ruby-it] Rails e form da array di oggetti

Antonio



Ml mailing list
removed_email_address@domain.invalid
http://lists.ruby-it.org/mailman/listinfo/ml


#3

Grazie per la risposta,
per quanto riguarda il modello cio’ che hai detto e’ chiaro, pero’ io
volevo sapere come gestire poi, seguendo il tuo esempio, un form di
inserimento di una Country che pero’ mi dia nello stesso form la
possibilita’ di inserire 10 City per esempio.

Antonio


#4

crei un oggetto country e N oggetti city, popoli i modelli e quando vai
a
salvare salvi prima il country(per recuperare l’ id da inserire nelle
city)
e poi salvi le city.

ora prova ad implementarlo così poi quando tutto funziona ti consiglio di
usare le transaction, praticamente esegue in blocco tutte le query al db
e
anche se solo una non va a buon fine annulla l’ operazione così se per
esempio non ti salva una city o il country non ti salva nemmeno gli
altri
record.

Saluti Andrea

----- Original Message -----
From: “Antonio B.” removed_email_address@domain.invalid
To: removed_email_address@domain.invalid
Sent: Saturday, March 31, 2007 1:28 AM
Subject: Re: [ruby-it] Rails e form da array di oggetti


#5

Qualcosa di questo tipo dovrebbe andare:

<% form_for :country, :url => countries_path do |f| %>
Country: <%= f.text_field :country_name%>

 <% fields_for 'city[]', @cities do |cf|
        3.times do |index|  %>
       City: <%= cf.text_field :city_name, :index => index %>
<% end
end %>

<%= submit_tag "crea country e tre cities" %>

<% end %>

Nel controller fai params.inspect e guarda come tirare fuori i dati
passati.
Paolo

On 3/31/07, Antonio B. removed_email_address@domain.invalid wrote:

basta che usi la nomenclatura di rails.
di
http://lists.ruby-it.org/mailman/listinfo/ml


Paolo D.’
SeeSaw | Another point of view


removed_email_address@domain.invalid
personal http://paolodona.blogspot.com