2011-11-08 7 views
0

ActiveRecord가 모델의 테이블을 쿼리하는 데 사용하는 기본 문을 변경하고 싶습니다. 기본적으로는Rails 3.1에서 기본 찾기 선택 문 변경

SELECT *,askml(wkb_geometry) as kml FROM "cables" LIMIT 1 
와 바람을 위해 내가 방법을 찾을 싶습니다

SELECT "cables".* FROM "cables" LIMIT 1 

에 의해 ...

this_cable = Cable.first 

결과 예를 들어, 테이블 "케이블"쿼리

이 방법은 데이터베이스 함수를 호출 할 수 있으며 개체의 필드처럼 동작합니다.

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" 

를 추가하여 수행 할 수 있습니다하지만 그 종류의 지저분한의 그림. "with_kml"범위를 호출하지 않고도이 "kml"열이 항상 거기에 있도록하고 싶습니다.

아이디어가 있으십니까?

답변

1

default_scope을 사용해 보셨습니까, 아니면 실제로이 모델이 모든 모델에 나타나기를 원하십니까? 그것은하지만, 조인 제대로 작동 등을 위해 당신은 cables.*에 그것을 변경할 수 있습니다

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

이 같은

뭔가가 문제를 해결하는 데 있습니다.

+0

감사합니다. 케이블에서도 할 수 있습니다. *. – frugardc

관련 문제