Mam model Person, który ma wiele obrazów, w których obrazy mają pole załącznika Spinacz o nazwie dane, skróconą wersję wyświetlaną poniżej:
class Person
has_many :images
...
end
class Image
has_attached_file :data
belongs_to :person
...
end
Osoba musi mieć dołączony co najmniej jeden obraz.
Korzystając z FactoryGirl, mam kod podobny do następującego:
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
(Uwaga: wypróbowałem również kod skomentowany powyżej). W większości przypadków, gdy uruchamiam funkcje ogórka, pojawia się błąd podobny do następującego:
Brak takiego pliku lub katalogu - /tmp/stream,9887,0.png (Errno :: ENOENT)
...
Czasami testy przebiegają pomyślnie.
Czy ktoś może mi powiedzieć, jaki mam tutaj problem lub w jaki sposób używają razem FactoryGirl i Paperclip, aby osiągnąć coś takiego, co próbuję osiągnąć?
Używam Rails 3.