Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更改Rails 3.1中的默认查找器select语句_Ruby On Rails_Ruby_Activerecord_Rails 3.1 - Fatal编程技术网

Ruby on rails 更改Rails 3.1中的默认查找器select语句

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 => "<

我想更改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>"
但我觉得这有点乱。我希望这个“kml”专栏始终存在,而不必调用“with_kml”范围

有什么想法吗?

你有没有尝试过使用它,或者你真的想让它出现在你所有的模型上

这样的事情可能会解决您的问题:

default_scope select("*, askml(wkb_geometry) as kml")
不过,您可能需要将其更改为
电缆。*
,以使其能够与连接等正常工作

default_scope select("*, askml(wkb_geometry) as kml")