Pregunta

Estoy configurando Ruby on Rails en una nueva instalación de Snow Leopard. Después de luchar (y paliza ) Problemas de MySQL y Sphinx, estoy atrapado en un estúpido error relacionado con HAML.

Esencialmente recibo un error de plantilla faltante para cada vista que usa HAML. Puedo agregar un archivo en blanco xxx.html.erb y una página (en blanco) se carga bien. Pero xxx.html.haml arroja el error, aunque ese archivo definitivamente existe en el directorio apropiado.

Aquí está el error del servidor de desarrollo:

ActionView::MissingTemplate (Missing template sections/index.erb in view path app/views):
  haml (2.2.4) rails/./lib/sass/plugin/rails.rb:19:in `process'

Estoy usando la gema haml (2.2.4), la gema de rieles (2.3.4) y el rubí 1.8.7. Ejecuté haml --rails. desde el directorio raíz de mi aplicación RoR; el archivo init está en el directorio vendor / plugins / haml. He confirmado que " requieren 'haml' " = > cierto a través de IRB.

¡Cualquier ayuda sería apreciada!

En respuesta a Yaraher:

Intenté desinstalar y volver a instalar, lo que no generó errores excepto con los rdocs (" No se pudo encontrar la página principal README.rdoc ").

En script / consola:

>> require 'haml'
=> []

Update:

La instalación de una versión anterior de Rails que funciona con HAML en este proyecto parece haber "arreglado" el problema. Todavía tendría curiosidad por escuchar una respuesta real a este problema: no quiero quedar atrapado en 2.3.2.

sudo gem install -v 2.3.2 rails

Actualización 2:

Esto definitivamente es causado por una diferencia entre Rails 2.3.2 y 2.3.4. Con ambas gemas instaladas, puedo establecer cuál se usa en mi archivo environment.rb. HAML funciona bien con 2.3.2 y se rompe como se describe en 2.3.4.

¿Fue útil?

Solución

Tiempo para la vergonzosa respuesta a esta pregunta:

Hay una diferencia entre Rails 2.3.2 y 2.3.4 que no reconoce los archivos xxx.haml.html como archivos que deberían ser analizados por HAML (o ERB); esto funcionó bien en 2.3.2. Los archivos HAML siempre deben llamarse xxx.html.haml anwyay, por lo que esto ni siquiera es un error.

No me di cuenta de que este era el problema porque tenía las "ocultar extensiones de archivo" opción activada (activada de manera predeterminada) en mi nueva instalación de Snow Leopard. Entonces, cuando intenté cambiar la extensión del archivo a través de Finder a html.haml para probar esto, en realidad lo cambió a haml.html.haml o alguna tontería.

Moraleja de la historia: ejecuté el siguiente script y ahora HAML funciona con Rails 2.3.4.

path = '/path_to_rails_app/views/'
dir = Dir.new(path)
dir.each do |d|
  if File.directory?(path+d)
    Dir.new(path+d).each do |f|
      if (f =~ /.*\.haml\.html$/) != nil
        File.rename(path+d+'/'+f, path+d+'/'+f.gsub('haml.html', 'html.haml'))
      end
    end
  end
end

Otros consejos

Intenta cambiar el nombre de tu plantilla a

sections/_index.haml

o

sections/__index.haml
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top