Domanda

Sto installando Ruby on Rails su una nuova installazione di Snow Leopard. Dopo aver combattuto (e battendo ) Problemi di MySQL e Sphinx, sono bloccato su uno stupido errore relativo a HAML.

In sostanza sto ottenendo un errore di modello mancante per ogni vista che utilizza HAML. Posso aggiungere un file xxx.html.erb vuoto e una pagina (vuota) si carica bene. Ma xxx.html.haml genera l'errore, anche se quel file esiste sicuramente nella directory appropriata.

Ecco l'errore dal server di sviluppo:

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'

Sto usando la gemma haml (2.2.4), la gemma rails (2.3.4) e il rubino 1.8.7. Ho eseguito haml --rails. dalla mia directory principale dell'app RoR; il file init si trova nella directory vendor / plugins / haml. Ho confermato che "richiedono" haml "" = & Gt; vero tramite IRB.

Qualsiasi aiuto sarebbe apprezzato!

In risposta a Yaraher:

Ho provato a disinstallare e reinstallare, il che non ha generato errori se non con rdocs ("Impossibile trovare la pagina principale README.rdoc").

In script / console:

>> require 'haml'
=> []

Aggiornamento:

L'installazione di una vecchia versione di Rails conosciuta per funzionare con HAML in questo progetto sembra aver "riparato" il problema. Sarei ancora curioso di sentire una vera risposta a questo problema: non voglio rimanere bloccato alla 2.3.2.

sudo gem install -v 2.3.2 rails

Aggiornamento 2:

Ciò è sicuramente causato da una differenza tra Rails 2.3.2 e 2.3.4. Con entrambe le gemme installate posso impostare quale viene utilizzato nel mio file environment.rb. HAML funziona bene con 2.3.2 e si rompe come descritto con 2.3.4.

È stato utile?

Soluzione

Tempo per la risposta imbarazzante a questa domanda:

Esiste una differenza tra Rails 2.3.2 e 2.3.4 che non riconosce i file xxx.haml.html come file che devono essere analizzati da HAML (o ERB); questo ha funzionato bene in 2.3.2. I file HAML dovrebbero sempre essere chiamati xxx.html.haml un giorno, quindi questo non è nemmeno un bug.

Non mi rendevo conto che questo era il problema perché avevo le estensioni di file " hide " opzione attivata (attivata per impostazione predefinita) nella mia nuova installazione di Snow Leopard. Quindi, quando ho provato a cambiare l'estensione del file tramite Finder in html.haml per testarlo, in realtà l'ho cambiato in haml.html.haml o in alcune sciocchezze.

Morale della storia: ho eseguito il seguente script e ora HAML funziona 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

Altri suggerimenti

Prova a rinominare il tuo modello in

sections/_index.haml

o

sections/__index.haml
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top