tengo el siguiente modelo:carga Carrierwave trabaja en la consola rieles, pero no en las especificaciones
class Face < ActiveRecord::Base
attr_accessible :face_index, :design, :background
belongs_to :template
mount_uploader :background, BackgroundUploader
end
El BackgroundUploader:
class BackgroundUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
Cuando inicio la consola rieles que puede crear una cara y guardar una fondo en la misma:
f = Face.create(:face_index => 0)
f.background = File.open("/path/to/image.jpg")
f.save!
que todas las obras, pero cuando trato de moverlo a RSpec estoy un fracaso:
Failures:
1) Face A new face
Failure/Error: @face.background = File.open(image_path)
NoMethodError:
undefined method `background_will_change!' for #<Face:0x007ff63d9f7410>
La especificación:
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
La fábrica:
FactoryGirl.define do
factory :face do
face_index 0
end
end
he visto que el error antes, cuando la columna cargador faltaba de la db, pero si mis migraciones son correctos para dev deberían ser correctos para la prueba, ¿no? ¿Debo exigir algo en la especificación para que funcione?
gracias!
¡Gracias! ¡Eso es exactamente lo que necesitaba para obtener muchas especificaciones rotas para que funcionen también! – BenU