2013-07-18 6 views
3

내가 작성하는 경우 :레일 4 레일이 레일 3과 다른 'from'입니까? 레일 3에서

select "models".* from 'models', NULL 

테이블 이름 따옴표와에 싸여 '레일 4에서

select "models".* from models 

이 같은 arel는 다음과 같은 SQL을 생성합니다 Model.from('models') arel는 다음과 같은 SQL을 생성 , NULL '이 추가됩니다. 레일 3에서와 같은 결과를 얻으려면 어떻게해야합니까?

나는 원래 동작을 이용하여 포스트 글레스에 대해 상당히 복잡한 with recursive 쿼리를 실행할 수있었습니다. rails4에서 postgres는 작은 따옴표 앞에 오는 값이 from 일 때 질식합니다.

with recursive 검색어를 사용하는 더 좋은 방법이 있습니까? 아니면 arel로 쿼리하는 방법이 있습니까?

+1

에 병합. 벤더 테이블에 app을 사용하면 3.2와 4 모두에서 'Vendor.from ('vendors '. to_sql')과 동일한 SQL 문을 볼 수 있습니다. 결과는'# => "SELECT \"vendors \ ". * FROM vendors" '. 더 복잡한 쿼리를 공유 할 수 있습니까? –

+0

흠, 지금까지 복잡한 쿼리를 사용하지 않았습니다. 시도한 쿼리와 같은 간단한 쿼리입니다. 아직도, 나는 다른 to_sql을 얻고있다. 어쩌면 버전 차이인가? Rails 4.0.0, 0.15.1 pg. 다른 관련 보석들? –

+0

@DanReedy aha! 정신 건강 검사 주셔서 감사합니다. 이것은 압박감을주는 보석으로 인해 발생합니다. 프로젝트에서 제거 할 때 예상되는 동작을 얻으므로 비 호환성이어야합니다. 나는 그들과 함께 그것을 가져갈 것이다. –

답변

1

이것은 squeel gem (오늘의 마스터 브랜치)과 호환되지 않는 것으로 보입니다.

EDIT 나는 squeel의 master 브랜치에 pull request을 보냈습니다. 문제가 해결되었습니다.

편집 2 : 난 당신이보고있는 그 오류를 복제 할 수 아니에요 마스터

+0

수치 스럽네요. (내가 좋아하는 보석 중 하나! –

+0

@Damien이 게임을 실행하면 나는 내 포크에 고정 시켰다고 생각한다. –

+0

고마워. 내가 문제가 있는지 살펴 보자. –