0
mysql 데이터베이스의 특정 테이블에서 특정 달에 특정 학생 "UG10001"이 수행 한 휴가를 계산하려고합니다. 나는 ----------레일 : 루프에서 함수를 호출하면 각 반복마다 동일한 값이 반환됩니다.
def calculate(student_id)
sum = Leave.find_by_sql("SELECT leave_duration FROM leaves WHERE MONTH(leave_from) = 2
AND YEAR(leave_from) = 2013 AND MONTH(leave_to) = 2 AND YEAR(leave_to) = 2013 AND
academic_status = 'APPROVED' AND warden_status = 'APPROVED' AND student_id = student_id
AND status = 'ACTIVE'").sum(&:leave_duration)
return sum
#it did the trick for me.
end
위의 방법은 계산합니다 code--
def calculate(student_id)
leave = Leave.find_by_sql("SELECT leave_duration FROM leaves WHERE MONTH(leave_from) = 2
AND YEAR(leave_from) = 2013 AND MONTH(leave_to) = 2 AND YEAR(leave_to) = 2013 AND
academic_status = 'APPROVED' AND warden_status = 'APPROVED' AND student_id = student_id
AND status = 'ACTIVE'")
sum = leave.sum(&:leave_duration)
return sum
end
---------- 업데이트의 다음 조각을 사용하고있는 '13 년 2 월 한 달 동안 특정 학생이 떠나고 전화 기능에 잎의 합계를 반환합니다.
def calcuateLeaveForEachStudent
array = Leave.find_by_sql("select student_id from students")
c = Array.new
for i in 0...array.length
student_id = array[i].student_id
c[i] = calculate(student_id)
end
end
위의 메서드를 호출하면 'calculate'메서드는 각 반복마다 동일한 값을 반환합니다. 이것에 대한 가능한 해결책은 무엇입니까? 미리 감사드립니다 ..!
PS -
코드는 구문 오류없이 Rails Console에서 완벽하게 실행되지만, 알아낼 수없는 오류가 있습니다.
올바른 방법을 참조 할 수는 계산이다 (작업, COLUMN_NAME, 옵션 = {}). 귀하의 방법은 다음과 같습니다 calculate (sum, student_id) –
더 나은 옵션은 find_by_sql보다는 find 옵션을 사용합니다! –
@SachinR plz ... 자세히 설명해 주시겠습니까? 나는 단지 그것을 얻지 않는다. –