Fabryka Dziewczyna docs oferują tej składni do tworzenia (chyba) Stowarzyszenia rodzic-dziecko ...Jak zdefiniować wiele powiązanych obiektów za pomocą Factory Girl?
Factory.define :post do |p|
p.author {|a| a.association(:user) }
end
Słupek należy do Użytkownika (jego „autor”).
Co należy zrobić, jeśli chcesz zdefiniować Factory, aby utworzyć User
s, które mają kilka Post
s?
A co, jeśli sytuacja dotyczy wielu osób (patrz np. Aktualizacja poniżej)?
UPDATE
myślałem, że zdobione. Próbowałem to ...
Factory.define(:user) do |f|
f.username { Factory.next(:username) }
# ...
f.roles { |user|
[
Factory(:role),
Factory(:role, {:name => 'EDIT_STAFF_DATA'})
]
}
end
Najpierw wydawało się działać, ale potem dostałem błędy sprawdzania poprawności, ponieważ F.G. próbował zapisać użytkownika dwukrotnie z tą samą nazwą użytkownika i adresem e-mail.
Powracam więc do mojego pierwotnego pytania. Jeśli masz relację wiele do wielu, np. Users
i Roles
, w jaki sposób możesz zdefiniować Factory, które zwróci Users
z niektórymi powiązanymi Roles
? Zauważ, że Roles
musi być unikalny, więc nie mogę mieć F.G. tworzenie nowego "ADMIN" Role
w DB za każdym razem, gdy tworzy on User
.