Travail sur un projet de classe finale. J'ai besoin de calculer la moyenne pondérée cumulative de mes crédits majeurs et crédits non majeurs séparément pour une page de transcription. Quand je lance ce code ci-dessous en tant que contrôleur, il fonctionne très bien et montrer mes heures de crédit total pour les grands et non majeur, mais quand je mets ce codeNoMethodError méthode non définie
@GPA_for_major = (course.credits * course.grade.scale)/course.credits
dans la déclaration Si je reçois NoMethodError dans TransController # transcription
méthode non définie des 'crédits' pour # Cours :: 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
Ceci est le contrôleur pour ma page de transcription
class TransController < ApplicationController
def transcript
@courses = Course.all
@transcript =Transcript.new(@courses)
end
end
Je ne sais pas quoi d'autre à inclure parce que c'est mon premier message, mais toute aide sera génial! Merci!
Votre problème serait plus évident si vous avez nommé vos tableaux comme pluriels. Votre variable '@ course' ne contient pas * a * bien sûr, elle contient un tableau de cours, elle devrait donc s'appeler' @ courses'. Ensuite, il est assez facile de voir que vous ne pouvez pas faire '@ courses.credits'. – meagar