Ruby Sequel: 查询返回的数组作为字符串对象返回,而不是数组对象
Ruby Sequel: Array returned by query is being returned as a String object, not an Array object
我正在使用 Ruby Sequel 的 pg_array 扩展。
当我select一个列是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 实例的配置。
我正在使用 Ruby Sequel 的 pg_array 扩展。
当我select一个列是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 实例的配置。