nella documentazione concernente Fixtures (http://api.rubyonrails.org/classes/Fixtures.html) forniscono il seguente esempio di utilizzo di riferimenti di etichetta per le associazioni:In un test dell'unità Rails, come posso ottenere un dispositivo Utente per caricare il suo profilo associato?
### in pirates.yml
reginald:
name: Reginald the Pirate
monkey: george
### in monkeys.yml
george:
name: George the Monkey
pirate: reginald
Quindi seguendo il loro esempio, ho un modello User che has_one: profilo, un modello di profilo che belongs_to: utenti, e ha cercato di creare dispositivi per il loro esempio:
### in users.yml
reginald:
id: 1
login: reginald
### in profiles.yml
reginalds_profile:
id: 1
name: Reginald the Pirate
user: reginald
(Nota: dal momento che la mia associazione è a senso unico, l'apparecchio utente non dispone di un "profilo: reginalds_profile" associazione - mettendolo in cause un errore perché la tabella SQL non ha attributo profile_id.)
Il problema è che, nei miei test di unità, tutto sembra essere caricato correttamente, ma gli utenti (: reginald) .profile sono sempre nulli. Cosa mi manca?
Penso che avrei potuto capirlo attraverso prove ed errori ... ma mi piacerebbe ancora vedere se qualcuno può verificare cosa stavo facendo male. Non è un fan delle soluzioni trial-and-error. – MikeJ
cosa hai fatto per sistemarlo? – cbrulak
Ho notato nel mio esempio che la differenza principale è che ho impostato io stesso gli ID delle fixture invece di lasciare che Rails li abbia impostati (vecchia abitudine, utilizzo Rails dal 1.x). Quando ho preso gli ID ha funzionato, ma perché? – MikeJ