试图将.js.erb文件包含到视图中

时间:2013-06-21 03:47:09

标签: javascript ruby-on-rails ajax json erb

我正在试图在我的视图中包含一些js.erb脚本。仅仅因为我正在编写一个基于民意调查的聊天,我想让它保持简单但实际上它最终变得比我最初想的要复杂得多。

这是我的js.erb脚本代码:

$( document ).ready(function() {   

    $(function() {
    setTimeout(updateMessages, 1000);

});

function updateMessages () {
  var game_id = $("#game_chat").attr("data-id");
  $("#messages").html("<%=escape_javascript(render(:partial => 'messages')) %> ");
  setTimeout(updateMessages, 1000);
}

});

而我的部分只是

  <%= render @messages %>

我真的被困在这里,似乎没有简单的方法在视图中包含.js.erb代码。我的意思是:

<%= javascript_include_tag  "games/messages.js.erb" %>

1 个答案:

答案 0 :(得分:1)

如果您正在使用资产管道,那么您不需要.js.erb。 &lt;%= javascript_include_tag“游戏/消息”%&gt;。 Tilt(决定使用哪个模板引擎的引擎)将从右侧开始并继续工作,因此浏览器和视图实际上只能看到.js文件。话虽这么说,从JS的角度来看,这样可以让你自己达到一系列的丑陋。如果包含类似的大字符串,它将触发代码的eval。如果您可以100%信任您的来源,这很好,但如果您不小心,请打开自己的xss。