Я разрабатываю приложение для движка Rails3 и хочу использовать Haml для представлений.
Во-первых, я добавил это в Gemfile движка:
gem "haml"
Пока я тестировал свой движок, он работал нормально (я использовал https://github.com/josevalim/enginex, чтобы сгенерировать гем и протестировать его с помощью фиктивного приложения).
Мои проблемы начались, когда я попытался использовать движок в реальном приложении Rails. Приложение не имеет драгоценного камня «haml» в своем собственном Gemfile, поэтому оно не инициализировало Haml, поэтому я получал ошибки «template not found», поскольку оно не искало представления .haml. Я думал, что если потребуется Haml на движке, этого будет достаточно, чтобы он также требовался приложением Rails.
Что я сделал на данный момент, так это добавил config/initializers/haml.rb в движок с этим кодом:
require 'haml'
Haml.init_rails(binding)
Сейчас это работает, но мне интересно, действительно ли это хороший способ сделать это. Почему Rails не вызывает файл Haml «init.rb» и поэтому правильно не инициализирует Haml, просто добавляя gem «haml» в Gemfile движка?