如何在rails 3中的file_field浏览中访问临时文件

时间:2013-09-21 14:58:43

标签: ruby-on-rails ruby-on-rails-3

如何在rails中附加excel文件及其路径

我的观点是

<%= form_for @hotel, :url => { :action => "create_by_excel_sheet" } do |f| %>
  <%= f.file_field :excel_sheet %>
   <%= f.submit %>
<%end%>

当提交表单时,我想在create_by_excel_sheet操作中接收附加的excel文件

我试过

params["hotel"]["excel_sheet"].tempfile.path然后它返回"/tmp/RackMultipart20130921-3387-1ffc97o"而不是文件路径。

Ex: /file_path/file_name.file_extension

2 个答案:

答案 0 :(得分:0)

  

然后返回“/ tmp / RackMultipart20130921-3387-1ffc97o”而不是文件路径。

文件路径。临时文件驻留在/tmp中,并具有大的pseduo随机名称。它们不需要文件扩展名。由您来阅读文件或将其复制到更永久的位置。

答案 1 :(得分:0)

安装google驱动器gem,roo依赖于google-drive中包含的某些宝石:

https://github.com/gimite/google-drive-ruby

在此之后我做了,

p Roo::Spreadsheet.open(params['file_to_upload'].path, extension: :xlsx)

---> {[1, 1]=>"qwrwe", [1, 2]=>"rqwerwqe", [1, 3]=>"we", [1, 4]=>"wer", [1, 5]=>"erqwe", [1, 6]=>"rwqerwer"