2015-02-05 29 views
1

我需要從我的前端使用的JST模板訪問我的圖像的asset_path,以使用Underscore模板進行渲染。如何訪問JST Underscore模板中的Rails 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> 

如何解決從我的模板使用Rails的資產管道 'asset_path'?同時,我希望能夠在運行時從Underscore模板傳遞變量'preset'。

示例:

渲染= JST [ 「MYAPP /模板/ filter_item」]

VAR({預設: 「mypreset」});

我希望「渲染」包含像這樣的HTML:

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

回答

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變量,我不太瞭解資產管道如何工作以說明上述方法是否適用於此。

相關問題