我需要找到支持PostgreSQL的Array列数据类型的Ruby ORM(Active Record,Sequel等)。
http://www.postgresql.org/docs/8.2/interactive/arrays.html
任何提示?
答案 0 :(得分:3)
Sequel的sql_subscript
仅用于在查询时访问值,正如您在之前的评论中所提到的那样。
Sequel除此之外没有对数据库阵列的特殊支持。您可以在create_table块中创建数组:
DB.create_table do
column :numbers, 'integer[]'
end
但这不是特别的支持,因为Sequel正在传递这种类型。在构建查询时,没有内置支持获取ruby数组并将其转换为PostgreSQL数组,并且在检索时也不支持将PostgreSQL数组转换为ruby数组(它将作为字符串返回)。
话虽这么说,Sequel的设置使得PostgreSQL的数组扩展和提供完全集成的hstore类型可以相对轻松地实现。有人一直致力于支持hstore(我认为它已经完成或接近它,但我还没有对它进行审核),对数组的支持应该与此类似。未来版本的Sequel可能会默认提供此类支持,也可能作为官方扩展提供。
答案 1 :(得分:0)
Sequel通过符号(和其他)上的sql_subscript
方法支持这一点。
最初通过Symbol#|
和Symbol#/
在版本0.4.3(2007年12月)中添加了支持,但更改为在版本2.12.0中使用新方法(2009年4月) 。搜索CHANGELOG以获取更多提及已经发生的改进。