2014-03-28 28 views
1

如何改變工廠:Factory_Girl陣列

FactoryGirl.define do 

    factory :slide do 

    association :album 
    description Faker::Name.name  
    photo { fixture_file_upload(Rails.root.join('spec/fixtures/sample_1.jpg'), 'image/jpeg') } 

    end 
end 

提供這個(照片是一個數組):

{"slide"=> 
    {"description"=>"Rylan Gerhold", 
    "photo"=> 
    [#<ActionDispatch::Http::UploadedFile:0x00000005720510 
     @content_type="image/jpeg", 
     @headers= 
     "Content-Disposition: form-data; name=\"slide[photo][]\"; filename=\"DSC_2382.JPG\"\r\nContent-Type: image/jpeg\r\n", 
     @original_filename="DSC_2382.JPG", 
     @tempfile=#<File:/tmp/RackMultipart20140328-1250-l4u0uv>>]}, 

而不是說:

{"slide"=> 
    {"description"=>"Rylan Gerhold", 
    "photo"=> 
    #<Rack::Test::UploadedFile:0x0000000542b8a0 
    @content_type="image/jpeg", 
    @original_filename="sample_1.jpg", 
    @tempfile=#<File:/tmp/sample_1.jpg20140328-32599-lwntv5>>}, 
"album_id"=>"1", 
"controller"=>"slides", 
"action"=>"create"} 

回答

1

使用此而不是

FactoryGirl.define do 

    factory :slide do 

    association :album 
    description Faker::Name.name  
    photo [Rack::Test::UploadedFile.new("#{Rails.root}/spec/fixtures/sample_1.jpg", "image/jpeg")] 

    end 
end 
+0

這是不同的文件上傳方法,但它不能解決問題。我仍然有照片不是數組,但:'「photo」=> # pawel7318

+0

試試這個[]。看到我更新的回答 –

+0

好得多!很有趣,因爲我試圖用我的代碼[],但我得到語法錯誤。我必須接受你的答案,但同時我意識到它並沒有解決我面臨的真正問題。如果你能查看我提出的更多細節問題,我將不勝感激。 – pawel7318