Being a rails newbie, I appear to have hit a large wall.
I am trying to create an online gradebook using rails, where I and other
teachers at my school can record students’ grades for all their homework
assignments.
students assessment1 assessment2 assessment3
Bart Simpson 12 15 9
Lisa Simpson 7 6 14
Charlie Brown 12 14 17
I would like teachers to be able to dynamically add columns for new
assessments as they occur, and understand that this is not such a simple
task.
It is obvious that I need a join model in which to store the grades as
there will be many students and many assignments, and each grade will be
linked to both a specific assignment and specific student.
So I have written my models as follows:
- class Student
- has_many :gradations
- has_many :assignments, :through => :gradations
- end
- class Gradation
- belongs_to :student
- belongs_to :assignment
- end
- class Assignment
- has_many :gradations
- has_many :students, :through => :gradations
- end
So far so good right?
Well I have since spent an infuriating amount of time fiddling about
querying the models, and I can’t for the life of me figure out how to
pull out the data as in the table above. i.e. listing all the students’
grades for each assignment.
I wonder if there is somebody out there who can put me out of my misery.
Or maybe I am barking up the completely wrong tree? Is there an easier
way of doing this that I have totally overlooked?..
Please, somebody help me. I don’t want to lose any more hair over this.
I have posted a more detailed picture of my dilemma at
http://railspool.blogspot.com/