Ich habe zwei einfache Fabriken: Eine für user
und eine für blog
. Wenn ein Blog erstellen, muss es eine user
verbunden ist, so ist dies in der Blog-Fabrik wider:FactoryGirl: Attribute für das zugehörige Modell angeben
FactoryGirl.define do
factory :user do
end
end
FactoryGirl.define do
factory :blog do
user #specifying the required association
end
end
Jetzt kann ich wie so ein Blog in einer Spezifikation erstellen:
blog = create(:blog)
, was ich bin nicht sicher, wie in der Spezifikation zu tun ist, wie einige benutzerdefinierte Attribute auf dem zugehörigen user
Datensatz sofort, wenn der blog
Datensatz zuerst erstellt wird.
Zum Beispiel: wenn die blog
Datensatz erstellt (die auch einen zugehörigen user
Datensatz erstellt), möchte ich auf diesem zugeordneten user
Datensatz das first_name
Attribut angeben. Etwas wie:
blog = create(:blog, associated_user: (first_name: 'foobar))
Diese Syntax oben funktioniert nicht, aber ich möchte so etwas tun. Ich habe mir die factory girl docs angesehen, und ich habe gegoogelt, bin aber nicht in der Lage, diese herauszufinden.
Frage: Wie lege ich einige benutzerdefinierte Attribute auf ein zugeordnetes Objekt beim Erstellen eines Objekts mit Factory-Mädchen?
Haben Sie bei Verbänden in der docs factory geschaut? Ich denke, was Sie suchen, heißt eine vorübergehende http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Associations –
@JeffPrice ja, ich habe die Verbände Abschnitt. Es zeigt nicht, wie ich benutzerdefinierte Attribute in der tatsächlichen Spezifikation eingeben kann. Alles, was ich gesehen habe, war, dass es zeigt, wie Vererbung für eine Factory verwendet wird, so dass Sie assoziierte Merkmale auf diese Weise angeben können, aber das fühlt sich an wie Overkill, weil ich diese Attribute nur für eine kleine Spezifikation angeben möchte. – Neil