Hola,
Primero que nada muy bueno el curos :).
Al obtener el path del archivo no lo agregas a open(), y la función pluralize_class devuelve el nombre del modelo con la primera mayúscula, por ejemplo Messages, para que funcione la carga dinámica se tiene que cambiar el archivo json a la primera mayúscula así Messages.json
Primero que nada muy bueno el curos :).
Al obtener el path del archivo no lo agregas a open(), y la función pluralize_class devuelve el nombre del modelo con la primera mayúscula, por ejemplo Messages, para que funcione la carga dinámica se tiene que cambiar el archivo json a la primera mayúscula así Messages.json