Assumendo un modello utente utilizzando Rails4 con parametri_forte.I parametri forti per gli attributi nidificati restituiscono "parametri non ammessi" quando l'array vuoto è
class User < ActiveRecord::Base
has_secure_password
accepts_nested_attributes_for :identity
// rest of code omitted for brevity
end
Se mi riferisco alla guida dovrei essere in grado di fare
def user_params
params.require(:user).permit(:email, identity_attributes: [])
end
per consentire mass_assignment di ogni identity_attributes qualunque sia la loro nomi o numeri. Ma questo percorso in un "parametri non consentito: identity_attributes"
Ma se a specificare le identity_attributes funziona
def user_params
params.require(:user).permit(:email, identity_attributes: [:last_name, :first_name])
end
Ho molti attributi in Identità, sarei in grado di mass_assign loro attraverso l'utente senza specificare tutti loro.
Mi manca qualcosa? E 'un errore ?
Acclamazioni
Grazie è giusto quando si ha una relazione uno-a-molti (e sembra logico specificare quale oggetto nella "parte multipla" dovrebbe essere aggiornato) ma sembra non essere il caso di un 1 a 1 relazione (Funziona bene senza specificare l'identità.id). La domanda riguardava l'esempio fornito in documenti in cui gli attributi nidificati sono un array vuoto^_^(e non funziona per quanto posso vedere) – phron
Ripetizione OOps questa mattina, hai ragione anche per un 1-to -1 relazione ... Se l'ID oggetto nidificato non viene fornito sembra eliminare il record originale e ricreane uno nuovo invece di aggiornare quello esistente (!!). I documenti non sono molto chiari quando strong_parameters e nested_attributes !!! Swingave swing Cheers – phron
@ d34n5 sei fantastico :). Ma mi stavo chiedendo perché i mongolo mancassero di questa cosa importante nella loro documentazione. –