该类在模型中定义了以下方法:
def EWKB
RGeo::WKRep::WKBGenerator.new(:type_format => :ewkb, :emit_ewkb_srid => true, :hex_format => true)
end
def self.containing_latlon(lat, lon, polygon)
ewkb = EWKB.generate(FACTORY.point(lon, lat).projection)
where("ST_Intersects(polygon, ST_GeomFromEWKB(E'\\\\x#{ewkb}'))")
end
在类控制器中调用动作时
point_in = containing_latlon(@point_p.lat, @point_p.lon, @polygon)
Rails返回NoMethodError
undefined method `containing_latlon'
我无法理解为什么这种方法被认为是未定义的
修改
以下garry的评论是正确的。
答案 0 :(得分:0)
这是一种类方法,正如您在代码中定义的那样
ModalName.containing_latlon(lat, lon, polygon)
您必须使用类名称(型号名称)来调用它。
PrintWriter writer = new PrintWriter(outputFile);
for (int i=0;i<<name>.length;i++){
writer.println(<ArrayListName>[i].getString(), + "\t" + <ArrayListName>[i].getFirstInt() + "\t" + <name>.[i].getSecondInt +<etc...>);
}
lat,lon,polygon是变量,您要发送到contains_latlon方法