我有一个部分文件/app/views/shared/_foo.html.slim
,我想使用ERB将渲染结果嵌入到/app/assets/javascript
目录中的JavaScript文件中。 (结果是一个HTML字符串,我将使用它来创建jQuery对象。)
我尝试了以下操作:
...
var foo = $('<%=render partial: "shared/foo"%>');
...
但是它引发了一个错误:undefined method `abstract?'
,所以我试图加载一些视图助手:
...
<%Sprockets::Context.send :include, ActionView::Helpers%>
var foo = $('<%=render partial: "shared/foo"%>');
...
,但会引发相同的错误。我不确定这是否是继续以这种方式添加所需文件的正确方法,如果是,应该加载哪些文件。
在JavaScript ERB文件中呈现部分文件的正确方法是什么?
答案 0 :(得分:0)
我发现了一种现代且正确的方法是使用在控制器类上定义的类方法render
。我能够使用以下代码来做到这一点:
...
var foo = $('<%=ApplicationController.render partial: "shared/foo"%>');
...