2010-09-25 17 views
21

Próbowałem renderować niektóre pliki z HAML w Rails 3 bez powodzenia.Błąd HAML on Rails 3 "Brak szablonu"

Moje pliki testowe mają rozszerzenie .html.haml.

W mojej Gemfile, mam linię gem 'haml' i uruchomiono bundle install.

Kiedy uruchamiam moją aplikację, pojawia się następujący błąd:

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"`

Każdy pomysł na jak rozwiązać ten problem?

+1

Czy ponowne uruchomienie proces twoich szyn? –

+0

Zmieniłem nazwę 'yourview.html.erb' na' yourview.html.haml' i wyświetliło się 'Template is Missing'. Więc zrestartowałem serwer szyny i teraz działa. – Bao

Odpowiedz

1

haml działa bez problemu w Rails 3 .. dwie rzeczy:

  1. upewnić się, że plik trasa ma resources :posts
  2. Upewnij się, że plik app/views/posty/index.html.haml

Czy możesz spróbować? I potwierdź, że wypróbowano także komentarz Andrew o ponownym uruchomieniu Railsów.

+0

Nie wiem dlaczego, ale teraz działa, 9 ​​ Thx za odpowiedź – Peter

69

Dla szyn 3 Wszystko, co musisz zrobić, to dodać:

gem "haml barierkami"

do Gemfile, następnie zrobić "bundle install"

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

Jeśli nadal widzisz błąd, spróbuj ponownie uruchomić serwer.

+15

to powinno być oznaczone jako odpowiedź - restartowanie serwera było dodatkowym krokiem, którego potrzebowałem. – Milktrader

+1

+1 za oznaczenie tego jako odpowiedź –

+0

Potrzebowałem również restartu serwera. +1 dla tej odpowiedzi. –

2

przypadku uaktualniania z Rails 2 do szyn 3, upewnij się, że jest blisko do początku pliku 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) 

Powinno być tuż pod

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

Przez cały dzień leżałem w dziurce od królika, myśląc, że mam jakiś problem z pozwoleniem na rvm/pasażer/gemset/unix z tego powodu. Dodałem nowe środowisko ("qa") w momencie Capifying i wdrażania na nowy serwer. Cały czas musiałem dodać "qa" do następującego wiersza 'Bundler.require (* Rails.groups (: assets =>% w (qa development test)))'. Dziękuję za wskazanie mnie we właściwym kierunku. – Chris

+0

potwierdził, dokładnie ten sam problem, który miałem –