2016-04-27 22 views
5

Ho la seguente fabbrica definito per un modello:Rspec/FactoryGirl: le modifiche apportate in fabbrica non salvano nel database di test?

factory :page do 
    association :user, factory: :standard_user 
    association :post, factory: [:short_post] 
    after :create do |model| 
    model.post.user = model.user 
    model.save! 
    end 
end 

il dopo creare blocco sembra eseguire il file e la fabbrica restituisce l'oggetto modello con le corrette/nuovi cambiamenti tuttavia questo non persiste nel mio database di prova.

ie. se chiamo Page.last.post.user.id dal mio test, ottengo ancora il vecchio id utente che è stato assegnato alla fabbrica di oggetti post prima del blocco dopo la creazione. Non sono sicuro del perché questo accada.

risposta

2

La vostra chiamata after :create dovrebbe davvero aggiornare l'oggetto post, tuttavia, si sta chiamando save! sull'oggetto page.

Provare a chiamare model.post.save! per salvare la colonna user_id su post direttamente.

Problemi correlati