Я не уверен, что вывод связки HTML в исходный код JS - это отличный дизайн, но это был не ваш вопрос - и мне пришлось делать подобные вещи, чтобы выводить фрагменты HTML, визуализированные шаблонами, в XML, чтоЯ считаю более разумным :).
Так или иначе, в вашем вопросе есть несколько вещей.
Это меняется от версии к версии Rails, но в Rails 4.x, я думаю, это должно работать, вы были близки, но по какой-то причине оно должно быть :formats
(во множественном числе) с массивом.А в вашем примере были и другие не связанные вещи, например, необходимость в тегах ERB <% = и вставка строк JavaScript в кавычки.</p>
var str = "<%= escape_javascript( render( :partial => 'partial_name', :formats => ['html'] ) ) %>";
Я думаю.Я не пробовал это точно сам.
Обратите внимание, что это все еще частично.Вы хотите визуализировать полный (не частичный) шаблон из другого шаблона - я уверен, что Rails не позволит вам сделать это.Меня это тоже немного раздражало.Но на самом деле, даже для рендеринга частичного HTML ("Some.html.erb") из частичного JS, вы должны использовать трюк :formats => []
, или Rails будет настаивать "эй, я хочу найти js частично с этим именем, мы в режиме js man! ".
Но, как указано выше, должен отображаться _partial_name.html.erb из шаблона JS.Что до сих пор, вероятно, не очень хороший дизайн.
Надеюсь, это поможет.