Какой тип Ruby / Erb разрешен внутри фильтра HAML: javascript? - PullRequest
6 голосов
/ 04 июня 2010

Кажется, что внутри :javascript фильтра HAML нет кода Ruby. разрешено, даже не комментарий.

Так что это НЕ разрешено:

:javascript
  - 1.upto(10) do |i|

:javascript
  -# just a comment not to show to public

(кто-то сказал, что нет способа скрыть такой комментарий внутри :javascript фильтр. Это правда?

но, похоже, единственное, что разрешено, это

:javascript
  $('#aDiv').html('#{a_ruby_variable}');

разрешено только это # ​​{}. Ничто другое, что является Ruby, не разрешено?

1 Ответ

7 голосов
/ 04 июня 2010

Как я уже говорил по вашему другому вопросу, фильтры (почти) полностью анализируются отдельно от Haml. Единственное исключение - #{}: для фильтров, которые просто преобразуют статический текст (т. Е. Текст, который вообще не взаимодействует со средой Ruby, поэтому большинство фильтров, кроме :ruby и :erb), добавляет Хэмл это удобный способ добавления значения Ruby.

Если вы ищете более сложную интеграцию Ruby со своим текстом, фильтры не место. Они предназначены для того, чтобы быть удобными, а не конечным решением, скажем, для размещения JS в вашем шаблоне.

...