2009-12-11 2 views
0

Ruby on Rails로 재무보고 응용 프로그램을 구축하고 있습니다. 이 앱에는 월별 재무 제표 개체가 있습니다 (속성으로 '수익'포함). 모든 단일 재무 제표에 대해 (1) 연간 수익 및 (2) 마지막 연도 매출 (달력 연도가 유효 함)을 표시해야합니다. 각 객체에는 'month'라는 날짜 (날짜/시간 속성) 속성도 있습니다 ('월'변수 이름 대 '월'메소드 이름 혼란 ... 조심해서 변수 이름을 변경해야합니다). 그래서복잡한 날짜 찾기 및 삽입

...

나는 (2) '수익'필드의 합계 (1) 한 후, 해당하는 기간의 재무 제표 (즉, 객체)의 배열을 '발견'할 필요가 있다고 생각합니다. 내 코드는 지금까지

def ytd_revenue 
    # Get all financial_statements for year-to-date. 
     financial_statements_ytd = self.company.financial_statements.find(:all, 
     :conditions => ["month BETWEEN ? and ?", "self.month.year AND month.month = 1", 
     "self.month.year AND self.month.month" ]) 
    # Sum the 'revenue' attribute 
     financial_statements_ytd.inject(0) {|sum, revenue| sum + revenue } 

이 응용 프로그램을 중단하지 않습니다 ...하지만 반환 '0'이 정확하지 않을 수있다.

모든 아이디어 나 도움을 주시면 감사하겠습니다.

답변

0

원하는 값을 보유하고있는 financial_statement 개체의 필드 이름은 무엇입니까? 당신은에 전달할 수 있습니다 -

financial_statements_ytd.inject(0) {|sum, statement| sum + statement.revenue } 
2

: 필드 이름이 ammount 다음 단지가되도록 inject 문을 수정이라고 가정하면 합계를 얻는 필드 이름과 조건.