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ę!
Dziękujemy! Właśnie tego potrzebowałem, aby uzyskać wiele uszkodzonych specyfikacji do pracy! – BenU