如何在JavaScript中嵌入Ruby(Rails + .html.erb文件)

时间:2010-08-29 23:44:00

标签: ruby

我有一个.html.erb文件,里面有一些javascript。我想做这样的事情:

var stuff = '<div><%= @ruby_var.title %></div>'

最好的方法是什么?我可能完全离开...谢谢。

4 个答案:

答案 0 :(得分:22)

要安全地执行此操作,您需要使用to_json:

<%= javascript_tag do %>
  var stuff = <%= @ruby_var.title.to_json %>;
<% end %>

如果@ ruby​​_var.title中有引号,这将确保您的代码不会中断。

要包括我要做的div:

<%= javascript_tag do %>
  var stuff = <%= "<div>#{@ruby_var.title}</div>".to_json %>;
<% end %>

请注意&lt;%=%&gt;周围没有引号,to_json会为您处理。

答案 1 :(得分:11)

<script>
 var stuff = '<div><%=escape_javascript @ruby_var.title %></div>'
</script>
你的.html.erb文件中的

可以正常工作。

答案 2 :(得分:3)

Ruby不能在客户端上运行,至少不能使用专门的浏览器插件。相反,看看使用AJAX和RJS从Javascript查询您的Ruby Web应用程序,并将它返回的任何文本插入到您的页面中。

如果没有更多信息,我认为你不会得到任何更好的答案。我也可能完全离开,因为我只是猜测你真正想要做什么。

答案 3 :(得分:3)

您可以使用javascript_tag function在.html.erb文件中包含Javascript。

示例:

javascript_tag "alert('This is a test')"
你的foo.html.erb中的

将返回

<script type="text/javascript">
//<![CDATA[
alert('This is a test')
//]]>
</script>

到浏览器。