2
나는 다음과 같은 모델이 있습니다액티브 쿼리하는 테이블에 걸쳐 SUM을 얻으려면
# == Schema Information
#
# Table name: quotes
#
# id :integer not null, primary key
# bound_rate_id :integer
class Quote < ActiveRecord::Base
#snip
end
# == Schema Information
#
# Table name: rates
#
# id :integer not null, primary key
# quoted_premium :integer
class Rate < ActiveRecord::Base
#snip
end
나는이 루프 같은 일을 계산합니다 쿼리 만들려면 :
sum = 0
for quote in Quote.all
rate = Rate.find(quote.bound_rate_id)
sum += rate.quoted_premium
end
을 어떻게 것 ActiveRecord의 쿼리 인터페이스를 사용하여이 작업을 수행합니까? (I 레일 4를 사용하고 있습니다)
편집 : 나는 이미 Quote
을 통해 이전 쿼리에서 ActiveRecord
인스턴스를, 그래서 quotes
테이블에서 내 쿼리의 시작을 선호하고 rates
테이블이 아닌 조인 것 다른 방법으로. 이처럼 :
some_quotes = Quote.where(:some_other_property, my_param);
sum_of_rates = some_quotes.?????
답변 해 주셔서 감사합니다! 불행하게도 (그리고 나는 내 질문에이 점을 명확히하지 않았다.) 나는 이미'quotes' 테이블에 대한 쿼리로부터'ActiveRecord' 인스턴스를 가지고 있기 때문에'quote' 테이블에서 쿼리를 시작하고' 요금 테이블. – Kevin
@Kevin 두 모델 간의 관계. –
모델을 살펴 봤습니다. 그것들은 프로그램 적으로 관계가있는'belongs_to','has_many' 또는'belongs_to_and_has_many' 관계를 명시 적으로 정의하지 않았습니다. 저는 우리가 "견적"마다 1 또는 0의 'Rate's가있는 관계를 "수동으로"설정하고 각'Rate '가 단일 견적에 속한다고 생각합니다. – Kevin