9

我正在使用 Rails 3.0.0.beta3 和 Haml 3.0.0.rc.2,我找不到需要为 Haml 放置配置行的位置(也找不到它们在新版本中的位置) . 使用 Rails 2.3.5 和 Haml 2,我会做

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

在环境中.rb。或者,在辛纳特拉,

set :haml, {:format => :html5}

在我的主文件中。但是在 Rails 3 中,一切都发生了变化,无论我把配置行放在哪里,我都会得到一个未定义的方法或未定义的对象错误。

4

2 回答 2

17

创建文件:

#{Rails.root}/config/initializers/haml.rb

使用 haml 选项:

Haml::Template.options[:attr_wrapper] = '"'
于 2010-11-24T10:40:52.633 回答
8

按照 Rails 3 的延迟加载理念,Haml 只ActionView::Base在加载时初始化自身,这在解析配置文件时可能不会发生。为了在加载 Haml 后运行代码,您需要在一个ActiveSupport#on_load块中运行它。例如:

ActiveSupport.on_load(:action_vew) do
  Haml::Template.options[:format] = :html5
end

我正在考虑在加载完整的 Haml 系统之前使配置可访问的方法,方法是Haml::Template.options提前定义或添加特殊config.haml哈希。

于 2010-04-28T04:48:29.317 回答