我在表格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
对象的一些内容,但这不起作用,因为它需要是一个字符串
答案 0 :(得分:0)
我非常确定它不起作用,因为在你的测试中你使用bg_image作为字符串,记得你为bg_image安装了一个上传器,你需要使用它来运行载波,我会查看carrierwave文档以获取有关测试的信息,希望它有所帮助!
这里有一些文档:
https://github.com/carrierwaveuploader/carrierwave#testing-with-carrierwave
答案 1 :(得分:0)
我的工厂图片文件:
include ActionDispatch::TestProcess FactoryGirl.define do factory :image do file { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec','support', 'test_images', 'audi.png')) } created Time.now.to_s tags { Faker::Lorem.characters 20 } user { FactoryGirl.create(:user) } end end