Error 500 en ActiveScaffold: ¿WTF?

En el periplo del desarrollo de aplicaciones Rails con ActiveScaffold es muy posible encontrarse con misteriosos carteles con el mensaje "Error 500" con un desagradable fondo en rojo.

Llegados a este punto es cuando uno empieza a:

  • escupir el monitor;
  • partir el teclado con un hacha;
  • patear el perro;
  • inyectarse nicotina en el torrente sanguineo;
  • demás explosiones emocionales.

Si alguna vez experimentaste eso con ese maldito error, no te preocupes, no has sido el único. La buena noticia es que no es un error indocumentado de ActiveScaffold ni de Rails. El error es culpa nuestra.

En mi propia experiencia he podido inferir que el error 500 se presenta cuando por alguna razón, ya sea por error tipográfico como de concepto, definimos mal las asociaciones entre los modelos. Es decir que es probable que:

  • no hayamos respetado las convenciones de Rails;
  • en un belongs_to hayamos puesto el símbolo en plural;
  • en un has_many hayamos puesto el símbolo en singular;
  • en el caso que indicamos :class_name o foreign_key no sean ni la clase ni el foreign key;
  • que hayamos puesto al revés la asociación  belongs_to - has_many;

Podemos determinar a ciencia cierta lo que genera el error 500 visitando el archivo de log, development.log, test.log, o production.log según sea nuestro caso de uso, e ir hasta el final. Ahí encontraremos la causa del error y de nuestro dolor de cabeza.

Saludos

No esta obligado a nada.

Nada, puse un comment, pero me arrepenti. Como no pude borrarlo, lo edite con esto que esta leyendo ahora. Saludos.