我想更改 ActiveRecord 用于查询模型表的默认语句。默认情况下,它查询表“电缆”,例如...
this_cable = Cable.first
结果是
SELECT "cables".* FROM "cables" LIMIT 1
我想找到一种方法让它结束
SELECT *,askml(wkb_geometry) as kml FROM "cables" LIMIT 1
这样我就可以调用一个数据库函数并让它的行为就像对象上的一个字段。
this_cable.kml
=> "<LineString><coordinates>-73.976879999999994,40.674999999999997 -73.977029999999999,40.674779999999998 -73.977170000000001,40.674770000000002 -73.97775,40.67501</coordinates></LineString>"
这可以通过添加范围来完成
scope :with_kml, "*,askml(wkb_geometry) as kml"
但我认为这有点混乱。我希望这个“kml”列始终存在,而不必调用“with_kml”范围。
有任何想法吗?