文件上传不是将参数设置为文件,而是将其设置为字符串

时间:2018-08-13 15:22:04

标签: ruby-on-rails ruby capybara

我正在像水豚一样测试表单:

attach_file('csv', File.absolute_path('spec/support/test.csv'))

如果以这种方式在控制器中打印出参数,则会得到:

{
  "csv"=>"test.csv",
}

但是,如果我在浏览器中执行此操作,然后选择一个文件并以这种方式提交表单,则会得到以下参数。

{
  "csv"=>#<ActionDispatch::Http::UploadedFile:0x00007f90786456f8 @tempfile=#<Tempfile:/var/folders/dd/.../T/RackMultipart20180813-8714-9t8e5.csv>, ...>
  "remotipart_submitted"=>"true", 
  "X-Requested-With"=>"IFrame", 
  "X-Http-Accept"=>"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",  
}

水豚为什么给我一个文件路径String而不是ActionDispatch::Http::UploadedFile?如何让水豚模仿实际的文件上传?

0 个答案:

没有答案