Hola de nuevo,
Pensaba que mis problemas estaban solucionados pero no es asà aunque
ahora creo que se de donde viene realmente el problema. Les cuento:
Desde la consola de ruby puedo realizar sin problemas la siguiente
instrucción:
Album.create(:cover_url => nil, :name => ‘Los Sueños Locos’,:catalog_id
=> 1)
Que según el log implica la siguiente sentencia en la base de datos:
INSERT INTO albums
(cover_url
, name
, catalog_id
, updated_at
,
created_at
) VALUES(NULL, ‘Los Sueños Locos’, 1, ‘2008-03-24
18:02:50’, ‘2008-03-24 18:02:50’)
Pero en mi aplicación rails, que recibe los campos para crear el album a
través de una petición xml, no se crea el album y el log indica lo
siguiente:
Mysql::Error: Incorrect string value: ‘\xF1os Lo…’ for column ‘name’
at row 1 INSERT INTO albums
(cover_url
, name
, catalog_id
,
updated_at
,
created_at
) VALUES(NULL, ‘Los Sueños Locos’, 1, ‘2008-03-24
18:02:50’, ‘2008-03-24 18:02:50’)
Como veÃs la sentencia es la misma, salvo el tema de los timestamps que
serÃan diferentes (en este caso es un cut and paste) . Realmente no
entiendo mu bien que puede estar pasando ya que como dije esa sentencia
se ejecuta correctamente también en una consola con mysql.
Lo que he conseguido hacer para que no me ocurra este problema a sido
desinstalar la gema de mysql (gem uninstall mysql) y la cosa ha
funcionado sorprendente. Y estarÃa bien averiguar porque ha ocurrido
esto pero no se como investigarlo, ya que, he leÃdo que es recomendable
la utilización de esa gema por temas de rendimiento al menos en sistemas
windows.
Un saludo y gracias por aguantar estos 3 posts.
Solucionado al parece el problema venÃa dado de la configuración del fichero database.yml donde asignaba la propiedad encoding: utf8 y al parece no es necesario y >además es perjudicial ya que no funcionaba de ese modo.
¿Se os ocurre porque pasaba todo esto? Porque en todos sitios uso codificación utf8