Skip to content

Modeling people's skills and abilities (Draft)

Kevin Fallon edited this page Aug 12, 2016 · 2 revisions

NOTE: The abilities class is not involved in any of this, but instead is related to authorization via the CanCan gem.

The models connected to people regarding their skills and training are complex, but it is a complex problem. People have one or more titles. These are titles they have achieved, or positions to which they aspire. You might have someone with the two titles of CERT member and SAR Team Member. The CERT member title requires the skills of driver's license, First Aid and pump training. The SAR team title requires driver's license, First Aid and SARTech III certification. By having the skills listed for the title, people know what they need to be eligible for the title. (Doesn't mean they automatically get it. They may have the qualifications, but not be accepted onto the team.)

So everyone needs the skill of being able to drive, which is achieved by possessing a driver's license. In the Rails models, this would be captured by the person instance having a certification in a particular course. (The model is Cert, an unfortunate collision with CERT members naming.) A Course provides Skills, the Skills qualify you for a Title. In the prior example you needed the Skill of driving. This can be met by a Massachusetts driver's license, a New Hampshire driver's license or a Commercial Driver's license. I don't want just driver's license, because they might have a different format for the license number, and they might expire on different time periods. The CDL might in the future give additional skills. Not all Skills are related to a Title. I may want to track the skill of driving a transport van with passengers. This is an endorsement on a CDL license. Also, some Courses give multiple Skills. A first aid course may give CPR, AED, and first aid Certs.

Clone this wiki locally