Integration Tests: "Integration test coverage is nonexistent. Not good. You should either think about adding some traditional Rails integration tests or experimenting with a tool like Cucumber to do BDD-style integration tests."
Models too light, controller too heavy "Models are generally pretty light and controllers are pretty heavy. Likely you'll want to look at moving functionality from controllers down into models."
Move Page Updates to RJS "Doing a bunch of AJAX-style updating in controller methods is iffy. Normally, I'd move those to RJS templates. Alternatively, it's worth looking at whether to avoid RJS and the page.replace_html (etc) method entirely, and move to JQuery or similar."
Here are a few spots I see where ActiveRecord isn't being used effectively.
For example:
:: ~ class Mark < ActiveRecord::Base ~ belongs_to :rubric_criterion ... #return the current mark for this criterion def get_mark criterion = RubricCriterion.find(rubric_criterion_id) return mark.to_f * criterion.weight end
end
Could be rewritten to
:: ~ class Mark < ActiveRecord::Base ~ belongs_to :rubric_criterion ... #return the current mark for this criterion def get_mark return mark.to_f * rubric_criterion.weight end
end