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