0

我有很多模型。现在我想只向特定的控制器和方法展示 JavaScript。

例如,如果我有这样的代码并且只想在community/show中显示它, 我应该将它粘贴到 view/communities/show.html.erb 的头部吗?
还是有更聪明的方法来管理这类事情?显然,如果我把它放在显示文件的头部看起来很丑,因为 JavaScript 总是应该放在<head>标记中。

<%= javascript_tag do %>
    jQuery(document).ready(function () {
        refreshPartial();
        setInterval(refreshPartial, 5000)
    });


    function refreshPartial() {
      $.ajax({
        url: "<%= community_path %>/refresh_part",
        type: "GET",
        dataType: "script",
      });
    }
<% end %>
4

2 回答 2

4

社区.js

jQuery(document).ready(function () {
  refreshPartial();
  setInterval(refreshPartial, 5000)
});


function refreshPartial() {
  $.ajax({
    url: "community/refresh_part",
    type: "GET",
    dataType: "script",
  });
}

查看/社区/show.html.erb

<%- content_for(:head) do -%>
<%= javascript_include_tag :communities.js -%>
<%- end -%>

社区布局

<head>
<title>Merry Christmas!</title>
<%= yield(:head) -%>
</head>
于 2012-12-29T20:56:08.893 回答
1

有几种方法可以做到这一点

  1. 你的 show.html.erb 的顶部:

    <% content_for :javascript_includes do %>
    <%= javascript_include_tag "forms.js" %>   
    <% end %>
    

    也可以参考这个答案

  2. 你把页面特定的 JavaScript 代码放在哪里, 看看Asset Pipeline 是如何工作的

于 2012-12-29T20:54:43.173 回答