我有一个Postgres数据库,其中包含PostGIS扩展和一些地理数据。我需要使用自定义SQL查询生成切片(使用ST_...
函数),返回二进制数据(bytea
,如\x1a320a0474657374121d12020000180322150946ec3f1a14453b0a09280f091413121e09091e0f1a026331220228012880207802
)。我需要将这些数据从我的Rails控制器发送到请求者,标题为'Content-Type: x-application/protobuf'
。
所以,我的问题是:
1)如何从数据库中获取二进制数据(Sequel
,ActiveRecord::Base.connection.execute
?)
2)如何在控制器动作中返回此数据? (send_data ..., tyle: ''
?)
谢谢!
答案 0 :(得分:2)
我刚刚想出了解决方案-希望它能对您有所帮助,尽管它已经很久了。
records_array = ActiveRecord::Base.connection.execute(query)
result = records_array[0]['st_asmvt']
encoded = ActiveRecord::Base.connection.unescape_bytea(result)
ActiveRecord::Base.connection.unescape_bytea
是答案。