[fr] Follow #938

Model name in the join options query made to singular
[fr] Follow #936

Added afterValidate()
[fr] Follow a480ae28a1f11b4189c529ecac49a14469f60b72

Make titles consistent with the other half of the blog tutorial.
[fr] Follow 06b60620ddb67edf484d5614be07efd1449e33d6

Recursively add tests.
[fr] Follow c7581c4aad042a05105198b927b0fa8766a54cff & 489de35fe4acb0fc270b7af05f9354c134b14297

Clarify getting started guide.