Ruby Sequel:查询返回的数组作为String对象返回,而不是Array对象

我正在使用Ruby Sequel的pg_array扩展。

当我选择一个Postgresql数组的列时,结果是Ruby中的一个字符串。 我如何将它作为一个Ruby数组,以便我可以使用像.each这样的东西?

CaseTypeCategory.first(category_name: 'Subscription')[:values] => "{value_one,value_two}" CaseTypeCategory.first(category_name: 'Subscription')[:values][0] => "{" 

数据库配置包括:

 Sequel.extension :pg_array, :pg_inet, :pg_json 

添加列的迁移包括:

 alter_table :case_type_categories do add_column :values, "text[]" end 

我可以编写原始SQL来访问数组中的单个元素:

 select values[1] from case_type_categories where category_name = 'Subscription' 

你需要使用DB.extension :pg_array, :pg_inet, :pg_json ,而不是Sequel.extension :pg_array, :pg_inet, :pg_json 。 否则,您只需要文件而不修改Sequel :: Database实例的配置。