2013-01-31 44 views
0

我有以下Ruby代码,其中包括一个表单,选择一个文件:通过Ruby on Rails中的表单选择访问文件?

<%= form_for :import, :url=>{:controller=>"user", :action=>"upload"}, :html => { :multipart => true } do |f| %> 
     <div class= "field"> 
      <%= f.file_field :import %> 
      <%= submit_tag 'Import' %> 
     </div> 

在我的控制,我试图调用用户从本地磁盘中选择的文件。
下面的代码工作时,我给它的文件:

book = Spreadsheet.open 'c:/myexcel.xls' 

但我不知道如何控制器调出从表格中选择的文件中。
请帮助

回答

2

可以用CarrierWave为此,请参阅railscast here

继承人的代码从Excel电子表格中导入数据:

def upload 
    require 'spreadsheet' 
    Spreadsheet.client_encoding = 'UTF-8' 
    file_to_import = params[ :import ][ :import ] 
    file = FileUploader.new 
    file.store!(file_to_import) 
    book = Spreadsheet.open "#{file.store_path}" 
    sheet = book.worksheet 0 
    sheet.each 1 do |row| 
     @user = User.new(:code => row[0], :name => row[1], :status => row[2], :account => current_user.account).save 
    end 

或者上传文件,检索它们,你可以使用“回形针”宝石(rai​​lscast here)。

这是相当古老的,但它是一个受人尊重的宝石,并得到很好的支持,并没有太大的变化。

希望帮助

+0

将尝试与CarrierWave和你给的代码,感谢 –

+1

是的作品:)干杯 –

相关问题