0

应用程序

bg_image的表User中有一个使用载波上传器的列

mount_uploader :bg_image, UserLogoUploader

它以如下所示的 activeadmin/formtastic 形式设置:

f.input :bg_image, :label => "Background Image", :as => :file

测试(问题出在哪里)

我有一个工厂User来制作具有所有必需字段的基本版本(在其他测试中有效),但是当我尝试添加bg_image它时,它并没有被保存。

工厂:

FactoryGirl.define do
  factory :user do
    stuff "set in factory"
  end
end

测试文件:

let!(:user) { create(:user, :something => "that works", :bg_image => "doesntWork.png") }

it "inspects the element" do
  puts user.inspect
end

打印出来

#<User id: 1, stuff: "set in factory", something: "that works", bg_image: nil>

我似乎无法弄清楚为什么它不保存!

我尝试了一些方法,例如将其设置为File对象,但这不起作用,因为它需要是一个字符串

4

2 回答 2

0

我很确定它不起作用,因为在您的测试中您使用 bg_image 作为字符串,请记住您将上传器安装到 bg_image 并且您需要使用它来让carrierwave 工作,我会查看carrierwave 文档以获取有关测试的信息,希望它有所帮助!

这是一些文档:

https://github.com/carrierwaveuploader/carrierwave#testing-with-carrierwave

于 2013-08-12T18:43:00.447 回答
0

我的工厂映像文件:

包括 ActionDispatch::TestProcess

FactoryGirl.define 做
  工厂:图像做
    文件 { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec','support', 'test_images', 'audi.png')) }
    创建 Time.now.to_s
    标签 { Faker::Lorem.characters 20 }
    用户 { FactoryGirl.create(:user) }
  结尾
结尾
于 2013-08-13T03:36:57.097 回答