Ich habe Modell Person, die viele Bilder hat, wo Bilder eine Büroklammer Befestigungsfeld haben Daten genannt, eine gekürzte Version unten angezeigt:Wie verwende ich Factory Girl, um eine Büroklammeranlage zu erstellen?
class Person
has_many :images
...
end
class Image
has_attached_file :data
belongs_to :person
...
end
Person ist erforderlich, mindestens ein Bild, um es angebracht zu haben.
Wenn factory mit, ich habe Code ähnlich dem folgenden:
Factory.define :image do |a|
a.data { File.new(File.join(Rails.root, 'features', 'support', 'file.png')) }
a.association :person
end
Factory.define :person do |p|
p.first_name 'Keyzer'
p.last_name 'Soze'
p.after_create do |person|
person.assets = [Factory.build(:image, :person => person)]
end
# p.images {|images| [images.association(:image)]}
end
(NB Ich habe auch den Code versucht, oben auf Kommentar auch versucht wurde) Die meiste Zeit, wenn ich Gurke Funktionen laufen, ich erhalten einen Fehler ähnlich dem folgenden:
keine solche Datei oder das Verzeichnis - /tmp/stream,9887,0.png (Errno :: ENOENT)
...
Manchmal werden die Tests erfolgreich ausgeführt.
Kann mir jemand sagen, was das Problem ist, das ich hier habe oder wie sie FactoryGirl und Paperclip zusammen verwenden, um etwas zu erreichen, was ich erreichen will?
Ich bin mit Rails 3.
abstimmen auf Frage nur für die Verwendung von Keyzer Soze, wie Sie Name testen! – Breno
Was @Breno sagte ... –
Wenn ich dies tue ... Fotos jedes Mal, wenn ich die Testsuite laufen lassen generiert und in den öffentlichen/System-Ordner platziert. Die Fotos werden nicht zerstört, nachdem die Testsuite ausgeführt wurde. Hat das jemand anderes bemerkt? – Jwan622