dove la :reject_if evita che il modello venga salvato se tutti i suoi
attributi sono vuoti.
Ma se nel modello uso i validates obbligando a riempire almeno un
campo non ottengo lo stesso risultato?
Se si posso quindi evitare di usare la :reject_if.
dove la :reject_if evita che il modello venga salvato se tutti i suoi
attributi sono vuoti. Ma se nel modello uso i validates obbligando a
riempire almeno un campo non ottengo lo stesso risultato? Se si posso
quindi evitare di usare la :reject_if.
Credo di si perch come ci si aspetta le validazioni dei modelli sono
onorate anche delegando la creazione dell’albero di oggetti ad
accepts_nested_attributes_for
Se togli il reject_if e lasci solo la validazione sui campi di Tag dovrebbe
ad occhio succedere questo:
parti da un form in cui ci sono i campi degli has_many (che il
motivo per
cui usi accepts_nested_attributes_for)
SE invii i campi di un tuo oggetto Tag tutti vuoti
ALLORA la validazione ti impedir di salvare tutto l’albero degli
oggetti
che stai creando perch ci sono errori e accepts_nested_attributes_for fa
tutto con un’unica transazione
reject_if serve a togliere roba evidentemente inutile, forse accoppia
troppo
il modello con la vista ma utile se usato in questo senso e toglie
logica
per la creazione di modelli dai controller rimettendola nei modelli (non
sempre quello che si vuole)
Comunque accepts_nested_attributes_for mi sembra una funzionalit che
almeno
per un periodo iniziale stata famigerata perch copre alcuni casi d’uso
e
non altri che ci si aspetta e rischia di esporre dei problemi di
sicurezza se
non usata con cognizione di causa (questo ultimo paragrafo solo
un’impressione che non saprei circostanziare bene)
Buona esplorazione
Antonio B.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)