在 Rails 中批量导入 CSV?

2023-12-12

我正在使用 FasterCSV 将上传的文件导入到模型中,它非常适合小文件。然而,当我尝试导入大型数据集(21,000 行)时,需要很长时间,并且实时服务器上的浏览器超时。

这是我当前的工作代码:

  logcount=0
  Attendee.transaction do
    FCSV.new(file, :headers => true).each do |row|
      row[1] = Date.strptime(row[1], '%m/%d/%Y')
      record = @event.attendees.new(:union_id => row[0], :dob => row[1], :gender => row[2])
      if record.save
        logcount += 1
      end
    end
  end

我很想使用后台进程,但用户需要查看导入了多少行,然后才能进入系统的下一步。

所以,我想我应该使用动作分块并且只读取较少数量的行,设置一个计数器,然后用某种进度更新视图,然后使用前一个计数器作为起点再次运行该方法。

我似乎不知道如何让 FasterCSV 只读取一组行数,并为起点设置偏移量。

有谁知道如何做到这一点?或者有更好的方法来处理这个问题吗?


Try 增强现实导入

旧答案

您是否尝试过使用增强现实扩展用于批量进口? 当您向数据库插入 1000 行时,您会获得令人印象深刻的性能改进。 参观他们的website更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rails 中批量导入 CSV? 的相关文章

  • 红宝石边缘情况

    ruby 有一些边缘情况很难解释 因为解析会带来一些有趣的问题 我在这里列出其中两个 如果您知道更多 请添加到列表中 def foo 5 end this one works if tmp foo puts tmp to s end How
  • “没有可用的二元红宝石”是什么意思?

    每当我使用rvm install x x x 即使安装成功 我也会收到此警告 No binary rubies available for osx 10 12 x86 64 ruby 2 4 0 Continuing with compil
  • 从 url 导入 CSV Errno::ENAMETOOLONG: 文件名太长

    我正在尝试从 url 导入 CSV 文件 但我得到了Errno ENAMETOOLONG file name too long 我按如下方式处理该文件 require open uri url http de65 grepolis com
  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • Ruby 枚举器中的“break”与“raise StopIteration”

    如果我使用 Ruby Enumerators 来实现生成器和过滤器 generator Enumerator new do y x 0 loop do y lt lt x x 1 break if x gt CUTOFF end end l
  • Rubymine 6 更新/刷新 Rails 项目中可用的方法和路径?

    这是一个例子 假设我更新路线resources foo这给我带来了一些新的道路 例如 new foo session当我开始在 ERB 视图中输入路径时 我希望它向我显示 建议自动完成与路径匹配的名称 当我输入 new foo 我会得到所有
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 如何从 Ruby 程序发送邮件?

    我想从 Ruby 应用程序发送电子邮件 核心语言中是否有调用来执行此操作 或者是否有我应该使用的库 最好的方法是什么 如果你不想使用行动邮递员 http wiki rubyonrails org rails pages ActionMail
  • 如何从引擎覆盖 Rails 应用程序路由?

    我有一个 Rails 应用程序 我正在尝试将 Rails 引擎集成到其中 主机应用程序有一些捕获所有路由 magic urls match gt admin rendering show match path edit gt admin r
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 测量两个字符串之间相似性的有效方法是什么? (编辑距离使堆栈太深)

    所以 我从这个开始 http en wikibooks org wiki Algorithm Implementation Strings Levenshtein distance Ruby http en wikibooks org wi
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • 如何从 ruby​​ 中的字符串中删除所有非数字?

    用户输入数字的形式如下 1 800 432 4567 800 432 4567 800 432 4566 800 432 4567 1 800 432 4567 800 432 4567 我希望所有这些都变成没有特殊字符的剥离版本 例如18
  • REXML - 如何提取单个元素

    我正在用 ruby 编写一些验收测试 其中涉及断言响应 XML 中值的存在 我的 XML 是这样的
  • 浏览器关闭时 Omniauth 会话过期

    在我的 Rails 3 应用程序中 我使用 Omniauth 进行用户身份验证部分 fb twitter 实际上我遵循这个 https github com RailsApps rails3 mongoid omniauth https g
  • Nokogiri 保持 HTML 实体不变

    我希望 Nokogiri 保持 HTML 实体不变 但它似乎正在将实体转换为实际的符号 例如 Nokogiri HTML fragment p reg p to s 结果是 p p 似乎没有什么可以将原始 HTML 返回给我 inner h
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常

随机推荐

  • 声音将在 Eclipse 中播放,但不会在导出的 jar 文件中播放

    当我运行 JAR 时 声音不播放 但当我在 Eclipse 中运行它时 声音会播放 这是我加载剪辑的位置 文件是从 jar 的目录加载的 而不是从 jar 内加载 public void init System out println gr
  • Firebase 崩溃无法读取

    我在阅读 FireBase 上的崩溃报告时遇到问题 我的报告如下所示 我已经关注了这些说明来表示堆栈跟踪 得到了相同的结果 我正在使用 Xcode 8 我的应用程序是用 Swift 3 制作的 已经在我的中写了 FIRApp configu
  • 如何在 flutter 中制作自定义按钮形状

    I am working on a project and i want to achieve a button 我怎样才能轻松地做出这个形状 您可以使用定制画家 看一下这个很好的例子关于如何使用这个 这是您想要实现的一个小示例 虽然我没有
  • 为 Log4j 配置 Eclipse

    我正在开发一个使用 apache jena 的应用程序 以使用 sparql 访问 dbpedia 嗯 我对 DBPedia 和 apache jena 非常陌生 我做了一些研究并开始使用一些示例代码来创建 VCARD 公共类 DpPedi
  • 如何从 SQLite 获取最近 3 小时的数据

    我正在使用当前系统时间在表中插入数据 例如System currentTimeMillis 因此 在获取数据时 我只需要获取最近 3 小时的数据 以下链接对我没有帮助 因为这个链接使用了我没有的特定日期格式 从sqlite中根据最近几个小时
  • 事件 - 文档已编辑

    编辑文档时是否有事件 如果没有 有谁知道我在哪里可以找到可用 VBA 事件的列表 以下是文档对象的事件 http msdn microsoft com en us library aa140279 office 10 aspx Events
  • 关于 Runtime.getRuntime().totalMemory() 的问题

    以下函数用于计算内存使用情况 private static long getMemoryUse putOutTheGarbage long totalMemory Runtime getRuntime totalMemory putOutT
  • 单一资源的嵌套 form_

    我有一个单一的嵌套资源 如下所示 map resources bookings member gt rate gt post do booking booking resource review end 给我这些路线 new booking
  • 什么是银行冲突? (进行Cuda/OpenCL编程)

    我一直在阅读 CUDA 和 OpenCL 的编程指南 但我无法弄清楚银行冲突是什么 他们只是深入研究如何解决问题 而不详细说明主题本身 有人能帮我理解吗 如果帮助是在 CUDA OpenCL 的背景下 或者只是计算机科学中一般的银行冲突 我
  • 在 RECYCLER VIEW 中添加页脚视图?

    我想在回收器视图的底部添加页脚布局 下面是我的适配器视图 它会膨胀页眉布局以及其他项目 感谢帮助 public class SplitMembersAdapter extends RecyclerViewAdapter
  • MySql 存储过程循环光标 - 语法错误

    语法错误在哪里 DECLARE irid INT DEFAULT 0 DECLARE tmp joinid INT DEFAULT 0 DECLARE loopjoins eof INT DEFAULT FALSE DECLARE CONT
  • Python:线程可以同时读/写同一个 TCP 套接字吗?

    我想要同一个 TCP 套接字有一个读取器线程和一个写入器线程 可以吗 在访问之前我需要锁定吗 平台是Windows 7 CPython 2 7 4 对于 Unix 内核 两个线程一个读取另一个写入文件 套接字 与两个进程执行相同操作相同 由
  • 如何使用 webview url 发送标头值?

    我开发了一个带有 webview 的 android 应用程序 我想用 url 发送标头值 如果可能的话谁帮我提供一下源代码 Map
  • Java 中的泛型,使用通配符

    我有一个关于 Java 泛型的问题 即使用通配符 我有一个像这样的 GenClass 示例类 public class GenClass
  • 使用 Typescript 和 Visual Studio 2015 运行时进行编辑?

    在 Visual Studio 2013 中使用 Typescript 时 我似乎记得我可以在浏览器窗口中运行 TypeScript 源时编辑它 然后刷新浏览器窗口并获取新的更改 现在 在 Visual Studio 2015 中 Visu
  • DBpedia SPARQL 查询返回多个重复记录

    我对 SPARQL 还很陌生 并且对它现有的多种语法标准感到困惑 我正在努力使用以下查询从 DBpedia 获取唯一数据 SELECT DISTINCT Museum name abstract thumbnail latitude lon
  • Kotlin - 当前实例的返回类型

    我正在 Kotlin 中构建一个验证库 基类是abstract并实现适用于所有类型的方法 isNotNull例如 abstract class Validator
  • 通过 QTcpSocket 发送任何结构

    在写入套接字之前如何将结构转换为 char 形式 Use 数据流 它具有处理 Qt 类的字节顺序 字节顺序 和序列化的优点 简单地将结构转换为 char 可能会导致很多问题 包括字节顺序 编译器填充等 我建议使用流
  • 修改正在运行的SKAction的速度

    我有这个代码 implementation MyScene SKAction delayAction Inside a method delayAction SKAction waitForDuration 3 0 self runActi
  • 在 Rails 中批量导入 CSV?

    我正在使用 FasterCSV 将上传的文件导入到模型中 它非常适合小文件 然而 当我尝试导入大型数据集 21 000 行 时 需要很长时间 并且实时服务器上的浏览器超时 这是我当前的工作代码 logcount 0 Attendee tra