2011-01-25 10 views
7

Hey ragazzi io sono in esecuzione in un problema:HAML in Rails 3 produce solo DOCTYPE HTML

Se uso qualcosa di simile:

!!! XML 
!!! 
%html 
    %head 
    %title Myspace 
    %body 
    %h1 I am the international space station 
    %p Sign my guestbook 

ottengo solo questo come fonte:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Myspace</title> 
    </head> 
    <body> 

    <h1>I am the international space station</h1> 
    <p>Sign my guestbook</p> 
    </body> 
</html> 

Grazie per qualsiasi aiuto :)

+0

Nessuna soluzione finora :( – Unomagan

risposta

8

Secondo lo HAML documentation, XHTML è il DOCTYPE predefinito tranne per Rails 3 che utilizza HTML5. È possibile impostare l'opzione :format per sovrascrivere.

In config/environment.rb:

Haml::Template.options[:format] = :xhtml 
+0

questo aiuta (un po ') ma ho ora dichiarazioni doppie DOCTYPE. .. – Unomagan

6

Per me non funziona per metterlo in environment.rb.

ho creato un inizializzatore in config/initializers/haml.rb e mettere in esso ...

Haml::Template.options[:format] = :xhtml 

Assicurarsi di riavviare il server dopo aver aggiunto che.

Poi nelle mie pagine ...

!!! XML 
!!! 

Questo produce ...

<?xml version='1.0' encoding='utf-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">