0

我有一个带有 PostGIS 扩展的 Postgres 数据库和一些地理数据。我需要使用自定义 SQL 查询(使用ST_...函数)生成图块,该查询返回二进制数据(bytea, like \x1a320a0474657374121d12020000180322150946ec3f1a14453b0a09280f091413121e09091e0f1a026331220228012880207802)。而且我需要将这些数据从我的 Rails 控制器发送给请求者,标头如'Content-Type: x-application/protobuf'.

所以,我的问题是:

1)如何从数据库中获取二进制数据(SequelActiveRecord::Base.connection.execute?) 2)如何在控制器动作中返回这些数据?( send_data ..., tyle: ''?)

谢谢!

4

1 回答 1

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是答案。

于 2020-01-11T16:23:35.350 回答