【发布时间】:2017-08-02 06:06:15
【问题描述】:
假设我有一个名为 Vendor(id, name, lat, lon, created_at) 的模型。 我有一个查询,我在其中找到供应商与当前纬度和经度的距离。
查询是 -
query = "*, ST_Distance(ST_SetSRID(ST_Point(#{lat}, #{lon}), 4326)::geography,ST_SetSRID(ST_Point(lat, lon), 4326)::geography) as distance"
Vendor.select(query)
我的序列化程序类为 -
class VendorSerializer < ActiveModel::Serializer
attributes :id,
:lat,
:lon,
:name,
:created_at
def attributes
hash = super
# I tried to override attributes and added distance but it doesn't add
hash[:distance] = object.distance if object.distance.present?
hash
end
end
我想要一个序列化的对象作为 {id, lat, lon, name, created_at, distance}。 所以模型属性被附加,但我如何添加额外的字段/属性,即“距离”到序列化哈希?
【问题讨论】:
-
您找到解决方案了吗?
标签: ruby-on-rails ruby postgresql activerecord active-model-serializers