2009-09-14 8 views
2

Je fais installer Ruby on Rails sur une nouvelle installation de Snow Leopard. Après avoir lutté (et beating) problèmes MySQL et Sphinx, je suis bloqué sur une erreur stupide liée à HAML. Essentiellement, je reçois une erreur de modèle manquant pour chaque vue qui utilise HAML. Je peux ajouter un fichier xxx.html.erb vide et une page (vide) se charge bien. Mais xxx.html.haml renvoie l'erreur, même si ce fichier existe définitivement dans le répertoire approprié.ActionView :: MissingTemplate avec HAML

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 le joyau de haml (2.2.4), joyau des rails (2.3.4), et Ruby 1.8.7. J'ai exécuté haml --rails. de mon répertoire racine de l'application RoR; le fichier init se trouve dans le répertoire vendor/plugins/haml. J'ai confirmé que "require" haml '"=> true via IRB.

Toute aide serait appréciée!

En réponse à Yaraher:

Essayé chômage et la réinstallation, qui a soulevé aucune erreur, sauf les rdocs (« Impossible de trouver la page principale README.rdoc »).

dans le script/console:

>> require 'haml' 
=> [] 

Mise à jour:

Installation d'une ancienne version de Rails connus pour travailler avec HAML dans ce projet semble avoir "fixe" le problème. Je serais toujours curieux d'entendre une vraie réponse à ce problème - je ne veux pas être coincé à 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 gems installés, je peux définir ce qui est utilisé dans mon fichier environment.rb. HAML fonctionne correctement avec 2.3.2 et se brise comme décrit en 2.3.4.

+0

Avez-vous essayé de le réinstaller? Avez-vous essayé de l'exiger via le script/la console? – Yaraher

+0

Cela semble être une copie de http://stackoverflow.com/questions/1150339/rails-2-3-2-trying-to-render-erb-instead-of-haml –

+0

Je ne peux pas reproduire cela .. J'ai essayé de créer une application Rails 2.3.4 avec un seul contrôleur et une seule vue Haml, et cela a bien fonctionné. Pourriez-vous créer une archive tar de l'application où elle échoue et me l'envoyer à [email protected]? Cela ressemble à un bug Haml que je voudrais écraser. –

Répondre

1

temps pour la réponse embarrassante à cette question:

Il y a une différence entre les 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 être nommés xxx.html.haml anwyay, donc ce n'est même pas un bug.

Je ne me suis pas rendu compte que c'était le problème parce que j'avais l'option "cacher les extensions de fichiers" activée (activée par défaut) dans mon installation Snow Leopard. Donc, quand j'ai essayé de passer l'extension de fichier à travers le Finder à html.haml pour le tester, il l'a effectivement changé en haml.html.haml ou 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 
0

Essayez de renommer votre modèle à

sections/_index.haml 

ou

sections/__index.haml 
+0

Ne fonctionne pas. Est-ce que cela ne marquerait pas simplement les modèles en tant que partiels? –

+0

Fonctionne comme charme! – ujifgc

Questions connexes