Thursday, January 31, 2008

Error en Rails: unexpected tINTEGER

Durante esta mañana estuve creando algunos modelos en Ruby on Rails. El siguiente error me daba cuando trataba de hacer .find(:all) a uno de ellos:

SyntaxError: compile error
.../gems/activerecord-2.0.2/lib/active_record/base.rb:1748
: syntax error, unexpected tINTEGER
Object::1


El problema es que estaba utilizando un campo llamado type. Al parecer Rails no acepta que un campo se llame así. Me imagino que deben de habar más palabritas que no se puedan utilizar. ¿Conoces alguna otra?

Sqlite por MySql en Rails2

Acabo de crear mi primera aplicación con Rails2 y me entero de que utiliza Sqlite como base de datos predeterminada en vez de MySql, que era la que se usaba con Rails1.

Había oído hablar de Sqlite pero nunca lo había utilizado. Me he puesto en eso y me ha gustado bastante, especialmente su sencillez :)

Veo que una de las principales causas de éste cambio es que la mayoría de los desarrolladores de Ruby on Rails trabaja con Mac y este sistema operativo trae este manejador de base de datos instalado; aparte de que sigue algunos de los principios de Rails: sencillez y cero configuración.

El uso de Sqlite en aplicaciones web tiene la ventaja de que no necesita configuración, y mucho mejor cuando se está trabajando en el desarrollo y pruebas.

Sin embargo, gracias a la forma en que Rails maneja su arquitectura MVC (modelo-vista-controlador), es bastante sencillo cambiar de base de datos, sólo hay que modificar el archivo config/database.yml, y listo!

Thursday, January 24, 2008

rails error: no such file to load — openssl (Ruby on Rails)

Luego de actualizar a la ultima versión de Rails y Gem en mi sistema operativo (Linux) me he topado con el siguiente error:

rails error: no such file to load — openssl (Ruby on Rails)
...
...

Este error pasa porque Rails está solicitando la biblioteca libopenssl para Ruby. Este error se corrige al instalar la biblioteca solicitada:

$ sudo apt-get install libopenssl-ruby1.8