ruby-on-rails - 将上传的文件路径传递给 File.read(path)

标签 ruby-on-rails ruby

image

正如您从图片中看到的,我有一个上传 csv 文件的按钮。 我如何将上传的文件获取到 file.read(PATH) 以便脚本接收该文件。

我的 Controller (calls_controller.rb)

  def index

    csv_text = File.read(UPLOADED FILE PATH)
    csv = CSV.parse(csv_text, :headers => true, :encoding => 'ISO-8859-1', :col_sep => ',')
  ...
  ..
  end

我试图给我的索引方法一个参数

  def index(file)

但这对我不起作用。

这是我的观点(index.html.erb)。 我在submit_tag中调用了该方法,但是我可以以某种方式传递一个参数或吗?

<div>
  <h4>Import data!</h4>
  <%= form_tag import_calls_path, multipart: true do  %>
    <%= file_field_tag :file, required: true %>
    <%= submit_tag "Import CSV", method: :index%>
  <% end %>

</div>

最佳答案

当您上传具有类似于您问题中的表单的文件时,以下操作应该有效:

File.read(params[:file].tempfile.path)

或者更简单:

params[:file].read

关于ruby-on-rails - 将上传的文件路径传递给 File.read(path),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60338561/

相关文章:

c++ - Ruby C++ 扩展中的多个构造函数

ruby-on-rails - 典狱长还是设计? Rails 身份验证有什么更好的选择?

ruby-on-rails - Rails 3 ActiveRecord 关联集合自定义方法

ruby-on-rails - 带有RVM的Mac OSX上的Rails Segmentation Fault

ruby - 使用ARGF时如何使用STDIN?

ruby - Ruby 中用于 append 内容的 << 运算符是什么?

ruby-on-rails - 使用 Rails 和 Rspec,如何测试数据库未被方法触及

ruby-on-rails - 是否有等效于 redirect_to :back in ASP. NET MVC

ruby-on-rails - Ruby:CSV 解析器在我的数据中被双引号绊倒

ruby .split ('\n' ) 不在新行上拆分