0

特定の月に特定の学生「UG10001」が取得した休暇を、mysql データベースのリーフ テーブルから計算しようとしています。次のコードスニペットを使用しています--

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

- - - - - アップデート - - - - -

  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

上記のメソッドは、特定の学生が 2013 年 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 で完全に実行されますが、理解できないエラーがいくつかあります。

4

1 に答える 1

0
 calculate(operation, column_name, options = {}).

または、リンクを参照できます

于 2013-02-21T06:59:09.087 に答える