【问题标题】:How to Access Rails DB via a Ruby Gem如何通过 Ruby Gem 访问 Rails DB
【发布时间】:2014-09-14 15:25:28
【问题描述】:

我正在尝试制作一个简单的 Ruby Gem,它可以通过命令行可执行文件访问 Rails 数据库(比如说 sqlite)并将其导出到 CSV 文件。 我无法弄清楚如何访问数据库以便将行等转换为 CSV。现在我的直觉告诉我要研究 ActiveRecord,但我发现的所有信息都是在 Rails 中调用它,而不是通过 gem。 此外,如果有人对我在使用其他数据库格式时可能遇到的问题以及从这些格式(如 PostgreS 或 Mongo)进行转换有任何见解,我们将不胜感激。只是想解决这个问题。

编辑:我想真正的问题是我不知道从哪里开始。我应该在可执行文件(bin/[cmd])中调用 ActiveRecord 还是在 rake 任务(不管是什么)中调用 ActiveRecord 或其他什么?现在我在我的 lib/gem.rb 文件中调用它(puts ActiveRecord.base.connection 看看它是否有效),但调用它以通过命令行上的可执行文件(bin/gem)运行并获得“未初始化的常量 Gem ::ActiveRecord。”

【问题讨论】:

    标签: sql ruby-on-rails database csv rubygems


    【解决方案1】:

    互联网上有许多解决方案。首先,如果您需要转储一个表或整个数据库,您可以使用纯 SQL 来完成。其次,如果不是这种情况,并且您需要从活动记录中提取信息并以 CSV 格式导出,我建议您查看 CSV 标准库。

    http://ruby-doc.org/stdlib-2.1.2/libdoc/csv/rdoc/CSV.html

    然后您可以从活动记录中提取行并相应地格式化它们。 查看 csv 库后,您可以执行与以下伪代码类似的操作。

    MyModel.where.....find_each do |row|
      csv << [row.name, row.number, row.otherthing]
    end
    

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 2011-11-26
      • 2012-05-24
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      相关资源
      最近更新 更多