【问题标题】:trying to include a .js.erb file into a view试图将 .js.erb 文件包含到视图中
【发布时间】:2013-06-21 03:47:08
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我需要它是 js.erb 因为我使用的是“渲染”。如果有办法只使用 js 来刷新视图,请告诉我。 (我只是想在 1 秒后刷新消息列表)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2011-07-29
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多