Как вставить результат рендеринга в файл ресурсов JavaScript? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть частичный файл /app/views/shared/_foo.html.slim, и я хочу встроить результат рендеринга в файл JavaScript, расположенный в каталоге /app/assets/javascript, используя ERB. (В результате получается строка HTML, и я буду использовать ее для создания объекта jQuery.)

Я попробовал следующее:

application.js.erb

...
var foo = $('<%=render partial: "shared/foo"%>');
...

но возникла ошибка: undefined method `abstract?', поэтому я попытался загрузить несколько помощников вида:

...
<%Sprockets::Context.send :include, ActionView::Helpers%>
var foo = $('<%=render partial: "shared/foo"%>');
...

но возникает та же ошибка. Я не уверен, правильно ли будет продолжать добавлять нужные файлы таким образом, и если да, то какие файлы мне следует загружать.

Как правильно отобразить частичные файлы в файлах JavaScript ERB?

1 Ответ

0 голосов
/ 06 ноября 2018

Я понял, что современный и правильный способ сделать это - использовать метод класса render, определенный в классах контроллера. Я смог сделать это с помощью следующего кода:

...
var foo = $('<%=ApplicationController.render partial: "shared/foo"%>');
...
...