2016-04-27 14 views
5

Mam następujący fabrycznie zdefiniowane dla modelu:Rspec/FactoryGirl: zmiany w fabryce nie są zapisywane w testowej bazie danych?

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 

after utworzyć blok wydaje się uruchomić plik i fabryka zwraca obiekt modelu z poprawnymi/nowy zmian to jednak nie utrzymują się w moim testowej bazy danych.

tj. jeśli zadzwonię pod numer Page.last.post.user.id z mojego testu, nadal otrzymuję stary identyfikator użytkownika, który został przypisany do fabryki obiektów pocztowych wcześniej przed utworzeniem bloku po. Nie jestem pewien, dlaczego tak się dzieje.

Odpowiedz

2

Twój after :create zwrotna powinna być naprawdę aktualizowania obiektu post jednak dzwonisz save! na obiekcie page.

Spróbuj zadzwonić pod numer model.post.save!, aby bezpośrednio zapisać kolumnę user_id pod numerem post.

Powiązane problemy