Problemas con acentos en rails

Soy nuevo en esto de rails. Me he comprado un libro y estoy con mi
primera apliación. El problema que tengo es que no me salen los acentos

Le he dado un monton de vueltas pero nada. Tengo el charset bien con
iso-8859-1 y en el editor que uso (Komodo), tengo los archivos creados
con la misma codificación. La cosa es que no sale ni a la de 3

Estoy usando InstantRails y mongrel, ¿habrá que configurar algo de esto?

¿será que tengo que configurar algo de rails?

¿alguien me puede ayudar?

gracias

Prueba a poner esto en application.rb

class ApplicationController < ActionController::Base

before_filter :convert_hash
after_filter :set_charset
ICONV = Iconv.new(‘ISO-8859-1’, ‘UTF-8’)

def set_charset
content_type = headers[“Content-Type”] || ‘text/html’
if /^text//.match(content_type)
headers[“Content-Type”] = “#{content_type}; charset=iso-8859-1”
end
end

def convert_hash
if request.xhr?
codificar(params) # si es una llamada ajax, llamo al método
codificar con los params
end
end

def codificar(hash)
hash.each_key do |a|
hash[a] = ICONV.iconv(hash[a]) if hash[a].is_a?String # si es
cadena, le aplico el ICONV
codificar hash[a] if hash[a].is_a?Hash # si es un hash, llamo a
esta
misma función
end
end

end

Hola,

yo recomendaría soluciones como la propuesta solamente como última
opción. La complejidad de la aplicación aumenta, obligas a pasar por
filtros de conversión cada llamada ajax (porque por defecto las cosas
van en utf8 cuando trabajas con ajax y prototype.js) y vas en general
contra corriente de la convención de usar utf-8.

si trabajas con una base de datos de legacy que está en iso-8859-1
entonces sí puede ser buena idea tirar por ahí, pero por lo que cuentas
no parece que sea tu caso, así que te recomendaría trabajar directamente
con utf-8 y evitar problemas.

si de todos modos quieres entender un pelín más porqué pasa lo que pasa
y porqué luis te ofrece la solución de filtrar los params, escribí un
post hace tiempo en
rails,ajax,charset (i) « format internet: (es
autopromoción, pero no tengo adsense así que no puntúa :stuck_out_tongue: )

también se ha hablado hace meses en esta misma lista de los puntos que
necesitas para asegurarte que todo tira en utf8 (base de datos, etc…)
buscando en los archivos lo encontrarás seguro.

saludos,

javier ramírez