0

我正在尝试将一些 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" %>
4

1 回答 1

1

好吧,如果您使用资产管道,则不需要 .js.erb。<%= javascript_include_tag "游戏/消息" %>。Tilt(决定使用哪个模板引擎的引擎)将从右侧开始并返回,因此浏览器和视图实际上只能看到 .js 文件。话虽这么说,从 JS 的角度来看,这样做会让你自己面对一系列丑陋的事物。当你包含一个像这样的大字符串时,它会在你的代码上触发一个 eval。如果您可以 100% 信任您的来源,这很好,但如果您不小心,就会打开 xss。

于 2013-06-21T08:03:47.003 回答