dpo*_*gg1 9 haml ruby-on-rails ruby-on-rails-3
我正在使用Rails 3.0.0.beta3和Haml 3.0.0.rc.2,我无法找到我需要为Haml放置配置行的地方(也不是新版本中的内容,就此而言) .使用Rails 2.3.5和Haml 2,我会这样做
Haml::Template.options[:format] = :html5
Run Code Online (Sandbox Code Playgroud)
在environment.rb中.或者,在Sinatra,
set :haml, {:format => :html5}
Run Code Online (Sandbox Code Playgroud)
在我的主文件中.但是在Rails 3中,一切都被改变了,无论我把配置线放在哪里,我都会得到一个未定义的方法或未定义的对象错误.
小智 17
创建文件:
#{Rails.root}/config/initializers/haml.rb
Run Code Online (Sandbox Code Playgroud)
使用haml选项:
Haml::Template.options[:attr_wrapper] = '"'
Run Code Online (Sandbox Code Playgroud)
根据Rails 3的延迟加载原理,Haml只ActionView::Base在加载后才初始化,这在解析配置文件时可能不会发生.为了在加载Haml后运行代码,您需要在ActiveSupport#on_load块中运行它.例如:
ActiveSupport.on_load(:action_vew) do
Haml::Template.options[:format] = :html5
end
Run Code Online (Sandbox Code Playgroud)
我正在考虑在加载完整的Haml系统之前使配置可访问的方法,可以通过Haml::Template.options先前定义或添加特殊config.haml哈希来实现.