Question

Je suis en train de configurer Ruby on Rails sur une nouvelle installation de Snow Leopard. Après avoir combattu (et avoir battu ) Problèmes MySQL et Sphinx, je suis bloqué sur une erreur stupide liée à HAML.

En gros, je reçois une erreur de modèle manquante pour chaque vue utilisant HAML. Je peux ajouter un fichier vierge xxx.html.erb et une page (vierge) se charge bien. Mais xxx.html.haml renvoie l’erreur, même si ce fichier existe définitivement dans le répertoire approprié.

Voici l'erreur du serveur de développement:

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'

J'utilise la gem haml (2.2.4), la gemme rails (2.3.4) et le rubis 1.8.7. J'ai couru haml --rails. depuis le répertoire racine de mon application RoR; le fichier init est dans le répertoire vendor / plugins / haml. J'ai confirmé que " besoin de 'haml' " = > vrai via IRB.

Toute aide serait appréciée!

En réponse à Yaraher:

Essayé de désinstaller et de réinstaller, qui n'a généré aucune erreur, sauf avec les rdocs ("Impossible de trouver la page principale README.rdoc").

Dans script / console:

>> require 'haml'
=> []

Mise à jour:

L'installation d'une ancienne version de Rails connue pour fonctionner avec HAML dans ce projet semble avoir été "corrigée". le problème. Je serais toujours curieux d’entendre une vraie réponse à ce problème - je ne veux pas être coincé à la 2.3.2.

sudo gem install -v 2.3.2 rails

Mise à jour 2:

Ceci est certainement causé par une différence entre Rails 2.3.2 et 2.3.4. Avec les deux gemmes installés, je peux définir ce qui est utilisé dans mon fichier environment.rb. HAML fonctionne bien avec 2.3.2 et se casse comme décrit dans 2.3.4.

Était-ce utile?

La solution

Le temps de la réponse embarrassante à cette question:

Il existe une différence entre Rails 2.3.2 et 2.3.4 qui ne reconnaît pas les fichiers xxx.haml.html en tant que fichiers devant être analysés par HAML (ou ERB); cela a bien fonctionné en 2.3.2. Les fichiers HAML doivent toujours s'appeler xxx.html.haml , de sorte que ce n'est même pas un bogue.

Je ne savais pas que c'était le problème, car j'avais les "masquer les extensions de fichier". option activée (activée par défaut) dans ma nouvelle installation de Snow Leopard. Ainsi, lorsque j'ai essayé de changer l'extension de fichier via le Finder en html.haml pour le tester, il l'a en fait remplacé par haml.html.haml ou par un non-sens.

Morale de l'histoire: j'ai exécuté le script suivant et maintenant HAML fonctionne avec 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

Autres conseils

Essayez de renommer votre modèle en

.
sections/_index.haml

ou

sections/__index.haml
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top