ruby - 如何使用 ActiveRecord 将数组插入到 Postgresql 表中?

标签 ruby activerecord ruby-on-rails-3.1 etl postgresql-9.1

我有 active_record 设置来使用 Postgresql 数据库。其中一列是 character varying[](基本上是一个 varchar 数组)。

无论如何,我的导入例程然后读取制表符分隔的文本文件并插入记录。一切都很好,直到我到达一个数组。应转换为数组的列以逗号分隔。但该行本身是制表符分隔的。

我正在导入的数据示例如下所示(制表符分隔):

Col1      Col2     Col3                  Col4
----------------------------------------------
Apple     Pear     Sweet,Round,Green     Fruit

Col3 的导入方式与 (ruby) 类似:col3.split(/,/) 为我提供了一个 Ruby 数组。但是 active_record 爆炸了:

PG::Error: ERROR: array value must start with "{" or dimension information (ActiveRecord::StatementInvalid)

如何正确插入该列?
此外,有时 col3 将为 NULL。

最佳答案

我能够使用以下 Ruby 代码插入:

alternatenames = '{' + s[3].split(/,/).map {|n| '"' + n + '"'}.join(",") + '}'

关于ruby - 如何使用 ActiveRecord 将数组插入到 Postgresql 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764427/

相关文章:

ruby-on-rails - 如何使用 gsub 替换撇号

ruby - Class::new 和 Class#new 一样吗?

ruby-on-rails - rails has_one 一个 has_many 关联

ruby-on-rails - 嵌套 JSON 的存储访问器

ruby-on-rails - 警告。保存缓存时遇到错误...无法转储匿名类

ruby-on-rails - 通过 Assets 管道携带 Sass 变量,Rails 3.1 rc1

ruby-on-rails - haml 与 haml-rails

Ruby NoMethodError 异常默认调用 #inspect

ruby-on-rails - Capistrano 错误 : '/usr/bin/env ruby : No such file or directory'

ruby-on-rails - Heroku 上的 ActiveRecord PGError 不是本地的