2012-05-16 14 views
5

Mam następujący model:Carrierwave wysyłania działa w konsoli szyn, ale nie w ciemno

class Face < ActiveRecord::Base 
    attr_accessible :face_index, :design, :background 
    belongs_to :template 
    mount_uploader :background, BackgroundUploader 
end 

BackgroundUploader:

class BackgroundUploader < CarrierWave::Uploader::Base 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 

Kiedy uruchomić konsolę szyn mogę stworzyć twarz i zapisz tło do niego:

f = Face.create(:face_index => 0) 
f.background = File.open("/path/to/image.jpg") 
f.save! 

to wszystko działa, ale gdy próbuję przenieść go do rspec dostaję awarię:

Failures: 

    1) Face A new face 
    Failure/Error: @face.background = File.open(image_path) 
    NoMethodError: 
     undefined method `background_will_change!' for #<Face:0x007ff63d9f7410> 

Spec:

describe Face do 

    before(:each) do 
    image_path = Rails.root.join('spec/support/images', '02.jpg').to_s 
    @face = FactoryGirl.create(:face) 
    @face.background = File.open(image_path) 
    @face.save! 
    end 

    describe "A new face" do 
    it { should belong_to(:template) } 
    end 

end 

Fabryka:

FactoryGirl.define do  
    factory :face do 
    face_index 0 
    end 
end 

Widziałem ten błąd wcześniej, kiedy kolumna uploader brakowało db, ale jeśli moje migracje są poprawne dev powinny być poprawne dla testu, nie? Czy muszę wymagać czegoś w specyfikacji, aby działało?

dziękuję!

Odpowiedz

5

Doh, odpowiedź był mój ostatni akapit, zapomniałem uruchomić

rake db:test:load 

Dobrym przykładem przerwę i wracamy do problemu.

+0

Dziękujemy! Właśnie tego potrzebowałem, aby uzyskać wiele uszkodzonych specyfikacji do pracy! – BenU

Powiązane problemy