我正在使用Mongoid Spacial在 Place 模型上存储坐标。我在客户端进行地理编码,并发送两个文本字段:纬度和经度。字段名称正确,这似乎是服务器端问题,因为坐标也无法在 Rails 控制台中保持不变。
模型
class Place
include Mongoid::Document
include Mongoid::Paranoia
include Mongoid::Timestamps
include Mongoid::Spacial::Document
attr_accessible :coordinates, :latitude, :longitude
field :coordinates, type: Array, spacial: true
spacial_index :coordinates
def latitude
coordinates[:lat]
end
def latitude=(latitude)
self.coordinates[:lat] = latitude
end
def longitude
coordinates[:lng]
end
def longitude=(longitude)
self.coordinates[:lng] = longitude
end
end
我知道坐标字段是一个数组,并且它作为一个对象返回。
我可以使用以下命令成功设置坐标:
self.coordinates = [-98.765432,12.345678]
但不是这些命令:
self.coordinates[:lng] = -98.765432
self.coordinates[0] = -98.765432
我怎样才能编写 setter 来完成这项工作?