Я использую направляющие 3.0.0.beta3 и Haml 3.0.0.rc.2, и я не могу найти, куда я должен поместить строки конфигурации для Haml (ни что они находятся в новой версии, в этом отношении). Используя направляющие 2.3.5 и Haml 2, я сделал бы
Haml::Template.options[:format] = :html5
в environment.rb. Или, в Sinatra,
set :haml, {:format => :html5}
в моем основном файле. Но в направляющих 3 все переехалось, и неважно куда я поместил ту строку конфигурации, я получаю неопределенный метод или неопределенную объектную ошибку.
В соответствии с философией ленивой загрузки 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
, либо добавив специальную конфигурацию . haml
хеш.