如何从HAML文件上传访问文件?

时间:2017-06-27 20:33:27

标签: ruby-on-rails ruby file-upload haml

我有一个Rails应用程序,我在其中使用HAML进行标记。在一个haml文件(bob.html.haml)中,我有以下

= form_tag bob_scorecard_dashboard_index_path :multipart=>true  do
  = file_field_tag 'file[]', multiple: true
  = submit_tag "Import"

在关联的控制器中我有

 def bob
    pp 'Do process logic on this file now... '
    file = params[:file]
    if (!file.nil?)
      pp 'hey buddy'
      pp file[0]
      #pp file[1] #This would show the second file uploaded, etc.
      #pp file[2] #Third file uploaded... and so on
    end

我可以看到,无论何时我点击上传(标有'导入')的按钮,我的方法' bob'被叫。我喜欢的是我在HAML呈现的文件上传实用程序中附加的文件可以访问/能够以任何方式操作它们。目前params [:file]包含一个字符串数组......这些字符串是用户上传的文件名。但实际文件并未保存在任何临时位置,因此无法以任何方式进行操作。在我看来,也许HAML部分没有做它的工作......据我所知,当我点击提交时,没有文件被上传到运行应用程序的服务器上。相反,我只是得到一个字符串,其中包含他们上传的文件名...但没有实际文件。

这是一个遗留应用程序,我无法使用Paperclip或Carrierwave - 我在其他项目中使用的有用实用程序。如果可能的话,我想上传和操作上传的文件,纯粹的'红宝石和HAML,一个人。这可能吗?

1 个答案:

答案 0 :(得分:1)

你的小错误。该表格声明应为:

destination

您评估的内容是' / dashboard / scorecard / bob?multipart = true`。它是一个常规查询字符串参数,而不是表单选项。