【问题标题】:CSV.parse error undefined method `pos' for #<ActionDispatch::Http::UploadedFile:0x000001036cb6b0>#<ActionDispatch::Http::UploadedFile:0x000001036cb6b0> 的 CSV.parse 错误未定义方法“pos”
【发布时间】:2012-04-03 04:22:46
【问题描述】:

可能和这个问题有关:https://github.com/thoughtbot/paperclip/issues/issue/346

但在 Rails 3.0.3(ruby 1.9.2)中,我似乎无法让 CSV.parse 工作。

这里是示例代码:

row_index = 0
CSV.parse(params[:dump][:file]) do |cells|
  column_index = 0
  cells.each do |cell|
    column_index += 1
  end
  row_index += 1
end

【问题讨论】:

  • 您是否尝试过从 Rails 控制台执行此操作?您是否尝试过阻止插件加载?怎么去掉宝石?您正在尝试做的事情是否适用于常规 irb?
  • 我想通了,谢谢。请参阅下面的答案。

标签: ruby-on-rails


【解决方案1】:

我必须在 Rails 3 中这样做:

data = params[:dump][:file].read
CSV.parse(data)

params[:dump][:file]是一个ActionDispatch对象,不能被CSV.parse直接解析。

【讨论】:

    【解决方案2】:

    试试看

    CSV.parse(params[:dump][:file].tempfile).each do |row|
        #stuff with row
    end
    

    至少在 Rails 3.2 和 Ruby 1.9.2 上是这样的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      相关资源
      最近更新 更多