如何在JST Underscore模板中访问Rails asset_path?

时间:2015-02-05 19:43:08

标签: ruby-on-rails ejs underscore.js-templating

我需要从我的前端使用的JST模板访问我的图片的asset_path,以使用下划线模板进行渲染。

例如:

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>

如何解决资产路径&#39;从我的模板使用Rails资产管道?同时我希望能够传递变量&#39;预设&#39;来自运行时的Underscore模板。

示例:

var rendered = JST [&#34; myapp / templates / filter_item&#34;]({preset:&#34; mypreset&#34;});

我希望&#39;呈现&#39;像这样包含HTML:

<div class="filter-item">
    <a href="#" class="thumbnail filter-select" data-preset="mypreset">
        <img src="/assets/balloons-ASSETHASH.jpg"><br/>
    </a>
</div>

1 个答案:

答案 0 :(得分:1)

几个月大了,但我最近自己也在苦苦挣扎。 Found the answer on the github page for sprockets

将扩展名.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变量,我对资产管道如何运作以表明上述方法是否适用于此不够熟悉。