【发布时间】:2018-05-14 07:03:41
【问题描述】:
我正在从 Rails 4 和 Ruby 2.1.10 升级到 Rails 5.0.6 和 Ruby 2.3.3。
由于 ActionDispatch::Http::UploadedFile 在 rails 5 中已弃用,我正在使用新方法:
it "should create candidate" do
file = Rack::Test::UploadedFile.new({filename: 'example.csv', type: 'text/csv', tempfile: File.new("#{Rails.root}/spec/files/example.csv")})
Candidate.import_csv(file)
expect(Candidate.find_by(name: "Stack Overflow").email).to eq "test@stackoverflow.com"
end
我收到此错误:
TypeError: no implicit conversion of Hash into String
问题是随机执行测试引起的吗?
【问题讨论】:
-
文档说
Rack::Test::UploadedFile.new将字符串作为参数,但您传递了与您的错误消息相对应的哈希值。 rubydoc.info/github/brynary/rack-test/Rack/Test/UploadedFile -
已经看到了,但是在创建临时文件时遇到了问题
标签: ruby-on-rails rspec ruby-on-rails-5