我有一个通过 RGeo gem 集成 PostGIS 的项目。导轨 4,红宝石 2.1。
RGeo 具有contains?
检查点是否位于多边形中的标准方法。一切都在开发中(在 MacOS X 上)。但是当我将代码推送到生产服务器(Ubuntu 12.04)时,我遇到了这个错误:
ActionView::Template::Error (Method Geometry#contains? not defined.):
app/models/address.rb:28:in `block in define_courier_area'
app/models/address.rb:28:in `define_courier_area'
代码非常简单。我只需要返回一个包含所有 CourierArea 实例的数组,地址坐标在哪里。
地址.rb
class Address < ActiveRecord::Base
def define_courier_area # HAVE TO BE REFACTORED
arr = []
CourierArea.all.each { |ca| arr << ca if ca.poly.contains?(self.coords)}
arr.first if arr.first
end
end
我想,生产环境无法访问contains?
由 RGeo gem 提供的方法。我怎么解决这个问题?也许我应该插入require 'some_rgeo_file'
?