У меня есть приложение Rails 3, где все представления сделаны в Haml. Тем не менее, есть некоторые представления, поступающие из обязательных гемов, которые есть в ERB, и Haml добавляет пробелы, и он портит текстовые области и тому подобное. (Если вы не знакомы с этим аспектом хамла, посмотрите здесь .)
Я бы предпочел не преобразовывать мой макет в ERB, и поскольку гем находится в ERB, все традиционные решения пробелов Haml не помогают.
Так как мне заставить мои текстовые области (и
s и т. Д.) Не оборачивать? Все, что я могу сделать в своем приложении, хорошо, иначе я бы с радостью применил патч к оригинальному камню.
Редактировать Думаю, я мог бы найти несколько приличных ответов.
Одна вещь, которая работает на конце хамла, это Haml::Template.options[:ugly] = true
, которая устраняет все пробелы. Мех, это может быть лучшим решением, но где мой пробел :( Мне понравилось, когда это не испортило мое приложение.
Другая идея заключалась в том, чтобы залатать самоцвет для автоматического преобразования \ n символов в & # x000A; в before_save, который имитирует то, что делает Хамл в ссылке, на которую я ссылался в моем первоначальном вопросе ... но это может быть немного болезненно.
Последнее решение, которое я нашел, которое, похоже, тоже работает, заключается в создании документа _form.html.haml, который расположен рядом с документом _form.html.erb в плагине и идентичен. Очевидно, что плагин не должен зависеть от Haml, но если родительское приложение отображает Haml, оно будет искать представление haml, прежде чем оно будет искать представление ERB. Однако есть одна оговорка, и это то, что Haml действительно должен быть загружен в начале приложения. Итак, у меня есть строка внизу application.rb, которая просто говорит «Haml» сама по себе.
Так что для всех, у кого есть эта проблема, теперь у вас есть 3 варианта на выбор, и если у вас есть лучшее, пожалуйста, опубликуйте его!