Rails CSV文件上传问题

时间:2016-09-20 19:26:29

标签: ruby-on-rails ruby file csv

我正在尝试将CS​​V文件(没有标题)上传到Rails中的表单,然后根据该文件的内容更改我的数据库。

现在,我遇到的问题是我知道我的路线必须正确,因为我能够找到正确的方法...但是,我的@imported变量说即使我上传也是零一份文件。

我能为此得到任何帮助吗?这将是我在rails中的第一个文件上传,因此我们可以一起跨越这个里程碑......

以下是我视图中的表单,映射到#ship操作:

<%= form_for @import, :url => {:action => "ship", :controller => "imports"} do |f| %>
    <%= f.file_field :import %>
    <%= f.submit %>
<% end %>

这是我控制器中的相应方法:

def ship
   @import = CSV.read(params[:file])
   @import.each do |i|
      Product.ship(@import[i][0]) #I believe the #read method imports
   end                              #CSV files as an array of arrays
  redirect_to "/"                   #But I have yet to get past the 
 end                                #first line, so I'm unsure

1 个答案:

答案 0 :(得分:1)

Sergio Tulentsev是对的。您需要使用params[:import][:import]。第一个import是您资源的名称(来自form_for @import,第二个import是字段名称(来自f.file_field :import)。

http://guides.rubyonrails.org/form_helpers.html#uploading-files

的更多信息