2010-09-25 5 views
21

J'ai essayé de rendre certains fichiers avec HAML dans Rails 3 sans succès.HAML on Rails 3 retournant l'erreur "Template is missing"

Mes fichiers de test ont l'extension .html.haml. Dans mon Gemfile, j'ai la ligne gem 'haml' et j'ai exécuté bundle install.

Quand je lance mon application, je reçois l'erreur suivante:

Template is missing

Missing template posts/index with {:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb]} in view paths "/Users/piet/Sites/blog/app/views"`

Toute idée sur la façon de résoudre ce problème?

+1

Avez-vous redémarré votre processus de rails? –

+0

J'ai renommé 'yourview.html.erb' en' yourview.html.haml' et il a montré 'Template is Missing'. J'ai donc redémarré le serveur rails et ça marche maintenant. – Bao

Répondre

1

HAML fonctionne sans problème dans Rails 3 .. Deux choses:

  1. Vérifiez que votre fichier d'itinéraire a resources :posts
  2. Assurez-vous de l'application de fichiers/vues/messages/index.html.haml

Pourriez-vous essayer? Et confirmez que le commentaire d'Andrew sur le redémarrage de Rails a également été essayé.

+0

Je ne sais pas pourquoi, mais maintenant il fonctionne; 9 Thx pour votre réponse – Peter

69

Pour rails 3 tout ce que vous devez faire est d'ajouter:

gem "HAML-rails"

à votre Gemfile, puis faire un "paquet d'installation"

Voir https://github.com/indirect/haml-rails

Si vous voyez toujours l'erreur, essayez de redémarrer votre serveur.

+15

cela devrait être marqué comme la réponse - redémarrer le serveur était l'étape supplémentaire dont j'avais besoin. – Milktrader

+1

+1 pour marquer cela comme la réponse –

+0

J'ai également eu besoin du redémarrage du serveur. +1 pour cette réponse –

2

Si vous mettez à niveau de Rails 2 à Rails 3, assurez-vous que c'est proche du haut de votre fichier config/application.rb:

# If you have a Gemfile, require the gems listed there, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(:default, Rails.env) if defined?(Bundler) 

Il devrait être juste en dessous

# Put this in config/application.rb 
require File.expand_path('../boot', __FILE__) 
require 'rails/all' 
+0

Je suis allé dans un trou de lapin toute la journée pensant que j'avais une sorte de problème de permission rvm/passager/gemsets/unix à cause de cela. J'ai ajouté un nouvel environnement ('qa') au moment de Capify et de déployer sur un nouveau serveur. Tout le temps j'ai dû ajouter 'qa' à la ligne suivante 'Bundler.require (* Rails.groups (: assets =>% w (test de développement qa))). Merci de m'avoir indiqué dans la bonne direction. – Chris

+0

confirmé, exactement le même problème que j'avais –