上传文件,而不是这样的文件或目录 - rails 4

nnn*_*867 0 ruby file-upload ruby-on-rails filepath ruby-on-rails-4

我在索引(pieces_path)中有这个

<%= form_tag (upload_pieces_path) do%>
  <%= file_field_tag 'data' %>
  <%= submit_tag %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

而这在片段控制器中

def upload
  file_data = params[:data]
  File.read(file_data, 'r') do |file|

     file.each do |line|
       ## .... ##
     end

   end
   redirect_to pieces_path
end
Run Code Online (Sandbox Code Playgroud)

最后的路线

match '/upload_pieces', to: 'pieces#upload', via: 'post'
Run Code Online (Sandbox Code Playgroud)

想法是在视图中读取文件,然后对他做一些事情,而不是将其保存在数据库中,然后返回上一页.

但是当我测试它时,我上传文件时收到"没有这样的文件或目录"错误.

有什么想法吗?我做错了什么?

mar*_*ets 5

你应该添加multipart选项form_tag:

<%= form_tag(upload_pieces_path, multipart: true) do %>
  <%= file_field_tag 'data' %>
  <%= submit_tag %>
<% end %>
Run Code Online (Sandbox Code Playgroud)