致力于最终的课程项目。我需要分别为成绩单页面计算我的主要学分和非主要学分的GPA。当我在下面运行此代码作为控制器时,它工作正常并显示我的主要和非主要的总学分时间但是当我把这段代码
@GPA_for_major = (course.credits * course.grade.scale) / course.credits
在If语句中,我在TransController#transcript中得到NoMethodError 未定义的方法'信用' for#Course :: ActiveRecord_Relation:0x00000007b99798>
class Transcript
def initialize (course_array)
@course = course_array
@total_non_major_credits = 0
@total_major_credits = 0
@GPA_for_major = 0
@GPA_for_non_major = 0
for item in @course
if item.is_for_major
@total_major_credits = @total_major_credits + item.credits
else
@total_non_major_credits = @total_non_major_credits + item.credits
end
end
end
def course
@course
end
def total_non_major_credits
@total_non_major_credits
end
def total_major_credits
@total_major_credits
end
def GPA_for_major
@GPA_for_major
end
def GPA_for_non_major
@GPA_for_non_major
end
end
这是我的成绩单页面的控制器
class TransController < ApplicationController
def transcript
@courses = Course.all
@transcript =Transcript.new(@courses)
end
end
我不确定还有什么要包括,因为这是我的第一篇文章,但任何帮助都会很棒!谢谢!
答案 0 :(得分:0)
@course
似乎是指一系列课程,if
语句位于循环内,循环遍历为每个课程设置局部变量item
的项目。鉴于此,你应该使用item而不是当然:
@GPA_for_major = (item.credits * item.grade.scale) / item.credits