Ruby on rails 更改Rails 3.1中的默认查找器select语句
我想更改ActiveRecord用于查询模型表的默认语句。默认情况下,它查询表“电缆”,例如通过Ruby on rails 更改Rails 3.1中的默认查找器select语句,ruby-on-rails,ruby,activerecord,rails-3.1,Ruby On Rails,Ruby,Activerecord,Rails 3.1,我想更改ActiveRecord用于查询模型表的默认语句。默认情况下,它查询表“电缆”,例如通过 this_cable = Cable.first 导致 SELECT "cables".* FROM "cables" LIMIT 1 我想找到一个方法让它结束 SELECT *,askml(wkb_geometry) as kml FROM "cables" LIMIT 1 通过这种方式,我可以调用一个数据库函数,使其行为类似于对象上的字段 this_cable.kml => "<
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>"
但我觉得这有点乱。我希望这个“kml”专栏始终存在,而不必调用“with_kml”范围
有什么想法吗?你有没有尝试过使用它,或者你真的想让它出现在你所有的模型上
这样的事情可能会解决您的问题:
default_scope select("*, askml(wkb_geometry) as kml")
不过,您可能需要将其更改为电缆。*
,以使其能够与连接等正常工作
default_scope select("*, askml(wkb_geometry) as kml")