Domanda da niubbo. Ho una pagina in cui l'utente pu modificare una specie di oggetto ordine: testata + righe. Pu aggiungere, togliere, modificare righe. Quando scatena l'update c' un modo per persistere le modifiche senza gestire a mano gli insert/update/delete? Se mi limito ad un @order.update_attributes(params[:order]) non cancella quelle rimosse dall'utente. grazie
on 2012-05-27 08:19
on 2012-05-27 10:28
> Ho una pagina in cui l'utente pu modificare una specie di oggetto > ordine: testata + righe. Pu aggiungere, togliere, modificare righe. > Quando scatena l'update c' un modo per persistere le modifiche senza > gestire a mano gli insert/update/delete? > > Se mi limito ad un @order.update_attributes(params[:order]) non > cancella quelle rimosse dall'utente. Cos a naso direi che hai un modello Order con un'associazione tipo has_many :rows, e in quel caso hai bisogno di una soluzione in accepts_nested_attributes_for. Qua una valida introduzione alla cosa: http://archives.ryandaigle.com/articles/2009/2/1/w... Spero di avere interpretato bene la tua esigenza :) -- Alessandro Mencarini freegoweb.it
on 2012-05-27 22:02
Grazie, in effetti l'articolo spiega un po' di cose e mi fa intuire che questo codice dovrebbe funzionare: # orders_controller def update @order = Order.find(params[:id]) @order.update_attributes(params[:order]) redirect_to orders_path end Cio se da order tolgo un item l'update se ne accorge e lo rimuove. Giusto? A me non funziona, ma io sto usando MongoDb/MongoId...potrebbe essere dovuto a quello? grazi.e 2012/5/27 Alessandro Mencarini <a.mencarini@freegoweb.it>:
on 2012-05-27 22:29
E a proposito di update massivo, i problemi di sicurezza che spiegano qui http://guides.rubyonrails.org/security.html#mass-assignment riguardo a casi come Order.new(params[:order]) valgono anche per l'update. Usa attr_accessible a meno che tu non voglia esporre agli utenti tutti i campi di Order e dei suoi nested attributes. Paolo
on 2012-05-27 22:30
Risolto! Con MongoId va specificato sul modello "Parent" (quello di Order) l'allow_destroy per i nested_attributes: accepts_nested_attributes_for :order_items, :allow_destroy => true grazie comunque. Articolo molto interessante. 2012/5/27 Emanuele DelBono <emanuele.delbono@gmail.com>:
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.