2016-04-12 17 views
1

Birkaç fabrikam var ama bir argümanı veya özelliği aşmam gerekiyor ama nasıl emin olamadım. Bir condition_is_met ise hashumda ekstra bir alan oluşturmam gerekiyor.İç içe geçmiş fabrikada koşullu özellik nasıl oluşturulur

sequence :assets do |n| 
    assets = [] 
    count = (n % 3) + 1 
    while count > 0 
     count -= 1 
     i = (n + count) % asset_compound_ids.length 
     compound_id = asset_compound_ids[i] 
     asset_id, blob_name = compound_id.split(/,/) 
     assets << {id: asset_id.to_i, blob: {name: blob_name, url: ASSET_ID_2_URL[compound_id]}} 

     if condition_is_met 
     assets[index][:blob][:asset_duration_ms] = 34564224 
     end 
    end 

    assets 
    end 

factory :layout do 
    assets 
end 

factory :event do 
    layout 
end 

Koşulları sıraya geçirebilir miyiz?

cevap

1

Fabrikaya böyle bir geri arama ekleme hakkında ne düşünüyorsunuz?

factory :layout do 
    assets 
    after(:build, :stub) do 
    next unless condition_is_met 
    assets[index][:blob][:asset_duration_ms] = 34564224 
    end