Как я могу получить доступ к Rails asset_path в шаблоне JST Underscore?
Мне нужно получить доступ к asset_path моих изображений из шаблона JST, который используется моим интерфейсом для рендеринга с помощью шаблонов Underscore.
Например:
filter_item.jst.ejs
<div class="filter-item">
<a href="#" class="thumbnail filter-select" data-preset="<%= preset %>">
<img src="<%= asset_path('balloons.jpg') %>"><br/>
</a>
</div>
Как мне разрешить 'asset_path' из моего шаблона, чтобы использовать конвейер ресурсов Rails? В то же время я хочу иметь возможность передавать переменную 'preset' из шаблона Underscore во время выполнения.
Пример:
var rendered = JST ["myapp / templates / filter_item"] ({preset: "mypreset"});
Я ожидаю, что 'Rendered' будет содержать HTML следующим образом:
<div class="filter-item">
<a href="#" class="thumbnail filter-select" data-preset="mypreset">
<img src="/assets/balloons-ASSETHASH.jpg"><br/>
</a>
</div>
1 ответ
Несколько месяцев назад, но я сам недавно с этим боролся. Нашел ответ на странице github для звездочек
Добавьте расширение .str
к вашим файлам, и вы можете использовать методы ruby / rails внутри тегов интерполяции строк: #{ ... }
Поэтому приведенный выше код, модифицированный для использования интерполяции строк, будет работать:
// filter_item.jst.ejs.str
<div class="filter-item">
<a href="#" class="thumbnail filter-select" data-preset="mypreset">
<img src="#{ asset_path('balloons.jpg') }"><br/>
</a>
</div>
Для data-preset
Я не достаточно знаком с тем, как работает конвейер активов, чтобы сказать, будет ли работать вышеуказанный метод для этого.