Ruby on Rails:将HTML部分渲染为一行字符串

Dyn*_*ope 7 javascript render partial ruby-on-rails-3

有没有办法将html.erb局部渲染为一行字符串?

我试图在javascript中渲染_foo.html.erb部分,这样我就可以将整个html文档用作字符串变量.

我试过以下代码:

var foo = "<%= render :partial => "foo" %>";
Run Code Online (Sandbox Code Playgroud)

在_foo.html.erb中,假设我有以下内容:

<h1>Hello</h1>
<p>World</p>
Run Code Online (Sandbox Code Playgroud)

这种方式会在javascript中给我一个语法错误,因为部分中有CRLF.但是,如果我写代码...

<h1>Hello</h1>" +
"<p>World</p>
Run Code Online (Sandbox Code Playgroud)

现在,这不是javascript中的错误.我可以采用后一种方式,但如果部分包含许多带有ruby脚本的代码行,那将是一场灾难.

有没有其他办法?

提前致谢.

Mar*_*ota 15

使用escape_javascript函数:

var foo = "<%= escape_javascript(render :partial => 'foo') %>";
Run Code Online (Sandbox Code Playgroud)

  • 如果你发现'escape_javascript`太多而无法输入,请记住它的别名为`j`. (3认同)