이 루비/레일은 항상 구성 저 퍼즐 :액티브 쿼리 체인
User.where(:name => "Thiago").limit(3).using(:slave_one)
이에서 실행해야합니다 왼쪽에서 오른쪽으로, 각각의 연속적인 호출이 수신기를 가질 수 있도록. 먼저 User 클래스로 시작하여 where
을 호출하여 ActiveRecord::Relation
의 인스턴스를 반환합니다. 해당 인스턴스에서 limit
이 호출되고 ActiveRecord::Relation
의 다른 인스턴스가 반환됩니다. 그런 다음 using
이 해당 인스턴스에서 호출됩니다 (샤드를 선택하는 경우). 모든 것은 ActiveRecord::Relation
개체 안에 SQL 쿼리를 작성합니다. 내 질문은 "쿼리의 실제 실행을 트리거하는 것"입니다. 체인에서 체인의 특정 지점에서 실행할 수 없기 때문에 체인에서 쿼리를 추가로 수정할 수 있습니다. using
이 반환 된 후에도 추가 메서드가 체인에 연결되어 있는지 여부를 알 수 없기 때문에 쿼리를 실행할 수 없습니다. 분명히 그것을 구축 한 후에 쿼리를 실행하므로 쿼리가 실제로 어떻게 호출됩니까?
감사합니다 ... 이제 체인의 메소드 이름에 "의미"가 있음을 알았습니다. 일부는 빌드 될 u 리를 추가로 수정합니다. 마지막 및 마지막 부분은 데이터를 가져올 필요가있는 형식 일 수 있습니다.