SORU
20 Temmuz 2010, Salı


Nasıl Fabrika Kızı Ataç Bir Eki Oluşturmak İçin Kullanılır?

Resimleri Ataç ek bir alan veri, kısaltılmış bir versiyonunu aşağıda gösterilen çağırdığı yere çok sayıda Resim, var olan biri var:

class Person
  has_many :images
  ...
end

class Image
  has_attached_file :data
  belongs_to :person
  ...
end

Kişi en az bir Resim ona bağlı olması gereklidir.

FactoryGirl kullanırken, kodu aşağıdaki gibi akın var:

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

(N. B. ayrıca yukarıdaki kod diye denedim de denedim oldu) Salatalık özellikleri çalıştırdığımda çoğu zaman, bir hata aşağıdakine benzer:

Böyle bir dosya ya da dizin /tmp/akışı,9887,0.(:: Hata ENOENT) png

...

Bazen testler başarıyla tamamlandı.

Herkes burada sorun yaşıyorum ya FactoryGirl ve Ataç birlikte nasıl kullandıklarını söyle başarmak için çalışıyorum ne gibi bir şey elde edebilir mi?

Raylar 3 kullanıyorum.

CEVAP
2 NİSAN 2012, PAZARTESİ


fixture_file_upload kullanabilirsiniz

include ActionDispatch::TestProcess testinizde Yardımcısı, burada örnek bir fabrika

factory :user do
  avatar { fixture_file_upload(Rails.root.join('spec', 'photos', 'test.png'), 'image/png') }
end

Yukarıdaki örnek, spec/photos/test.png testlerinizi çalıştırmadan önce uygulamalarınızda kök dizin olup gerekiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • colacas

    colacas

    29 EKİM 2006
  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • TheSalband Rai

    TheSalband R

    11 NİSAN 2011