Используя Rails 3 и Haml 3, как мне настроить Haml? - PullRequest
9 голосов
/ 28 апреля 2010

Я использую 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 все изменилось, и независимо от того, куда я поместил эту строку конфигурации, я получаю неопределенный метод или неопределенную объектную ошибку.

Ответы [ 2 ]

17 голосов
/ 24 ноября 2010

Создать файл:

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

С опцией haml:

Haml::Template.options[:attr_wrapper] = '"'
8 голосов
/ 28 апреля 2010

В соответствии с ленивой загрузкой 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 хеш.

...