对soundcloud gem的测试还没有看到太多。大多数事情都很出色——但是我发现通过我的规范将文件上传到 SoundCloud 有点棘手。
这是问题所在:
规格:
file = "#{Rails.root}/spec/factories/files/sample.mp3"
title = "From the test suite"
track = @client.post('/tracks', track: {title: title, asset_data: File.new(file)})
我是否使用
File.new
或者
File.expand_path
错误是一样的:NoMethodError: undefined method `map' for #String:0x007fa1ce8425c0
控制器中成功的代码是:
file = params["soundcloud_file"]
title = params["title"]
track = client.post('/tracks', track: {
title: title
asset_data: File.new(file.tempfile, 'rb')
})
现在我知道 params["soundcloud_file"] 是一个 ActionDispatch::Http::UploadedFile,所以这就是我过去一个小时左右一直在尝试使用的东西,但没有运气。
我愿意以任何方式成功测试上传。