Ciao a tutti, ho il problema in oggetto. La mia tabella intermedia "clients_models" é composta da: id (solito...autoincrementale) model_id (riferimento all'id della tabella models) client_id (riferimento all'id della tabella models) x (campo da riempire) y (campo da riempire) z (campo da riempire) Ho già "legato" tra loro i vari modelli client, model e clients_model con le relazioni belongs_to has_many through ecc. e tutto funziona solo che non sò quale sia il modo migliore per riempire e, allo stesso tempo, validare i campi x,y,z. Infatti facendo un qualcosa del genere: @model.clients_models << @client vengono riempiti solo i campi id, model_id, client_id. Forse potrei riempire (x,y,z) nel "modo tradizionale" creando un nuovo oggetto ClientsModel e riempiendolo con i campi passati dalla vista(form_for). Però mi chiedevo se c'era un modo "più elegante" o semplicemente "più furbo" di riempirli utilizzando le relazioni precedentemente create tra i modelli. Voi che ne dite? Grazie a tutte le persone che mi risponderanno. Ciao
on 2010-01-27 20:26
on 2010-01-28 14:47
Non mi è mai capitato di dover mettere dei campi sulla tabella di legame molti a molti, ma ha senso? Sono informazioni sul legame che quindi è necessario duplicare ogni volta? Perchè altrimenti avresti potuto usare l'automatismo con has_and_belongs_to_many che è completamente trasparente, senza doverti gestire l'oggetto. Se invece sono informazioni che devono stare la e devono arrivare da un form, non credo ci sia altra scelta se non quella di seguire la via tradizionale, come la chiami tu, istanziando l'oggetto mediante la variabile params
on 2010-01-28 14:58
Il 27 gennaio 2010 20.26, pezzuya .. <pezzuya-gruppi@yahoo.it> ha scritto: > Ho già "legato" tra loro i vari modelli client, model e clients_model > Forse potrei riempire (x,y,z) nel "modo tradizionale" creando un nuovo > oggetto ClientsModel e riempiendolo con i campi passati dalla > vista(form_for). > > Però mi chiedevo se c'era un modo "più elegante" o semplicemente "più > furbo" di riempirli utilizzando le relazioni precedentemente create tra > i modelli. Non capisco, perché crei le relazioni tra i modelli prima e poi inserisci gli altri dati? Immagino tu abbia un form, in cui per un dato client selezioni molteplici model (o viceversa) e per ciascuno le informazioni x, y, z. client avrà molti clients_models, così anche models; puoi gestire quindi il tutto come un normale uno a molti, vi sono parecchi esempi in giro, su railscasts o altrove. pietro
on 2010-01-30 18:57
In effetti forse potevo gestire il tutto con una semplice relazione uno a molti tra models e clients_models. Però in fase di "scaffolding" mi era venuta in mente una relazione molti a molti quindi l'ho gestita così. Forse ho pensato di gestirla così per avere una doppia connessione tra le tabelle clients e models che in effetti mi potrebbe tornare utile più avanti. Per ora ho risolto in "modo tradizionale". Grazie a tutti.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.