Rails 3中的HAML只生成doctype html

Rails 3中的HAML只生成doctype html,html,ruby-on-rails,ruby,xhtml,haml,Html,Ruby On Rails,Ruby,Xhtml,Haml,我遇到了一个问题: 如果使用类似的方法: !!! XML !!! %html %head %title Myspace %body %h1 I am the international space station %p Sign my guestbook 我仅从以下来源获得: <!DOCTYPE html> <html> <head> <title>Myspace</title> <

我遇到了一个问题:

如果使用类似的方法:

!!! XML
!!!
%html
  %head
    %title Myspace
  %body
    %h1 I am the international space station
    %p Sign my guestbook
我仅从以下来源获得:

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

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

Myspace
我是国际空间站
在我的留言簿上签名

根据,XHTML是Rails 3的默认DOCTYPE,Rails 3使用HTML5。您可以将
:format
选项设置为覆盖

config/environment.rb
中:

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

对我来说,把它放在
environment.rb
中是行不通的

我在
config/initializers/haml.rb
中设置了一个初始值设定项,并把它放进去

Haml::Template.options[:format] = :xhtml
请确保在添加后重新启动服务器

然后在我的页面中

!!! XML
!!!
这就产生了

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