0

たくさんのモデルがあります。ここで、JavaScriptを特定のコントローラーとメソッドにのみ表示するのが好きです。

たとえば、このようなコードがあり、communities / showでのみ表示したい場合 、これをview / communitys / show.html.erbの先頭に貼り付ける必要がありますか?
または、この種のものを管理するためのよりスマートな方法はありますか?JavaScriptは常に<head>タグ内に配置する必要があるため、showファイルの先頭に配置すると明らかに見苦しくなります。

<%= 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

communitys.js

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


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

view / communitys / show.html.erb

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

communitys_layout

<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コードをどこに配置し、 AssetPipelineの仕組み を確認しますか

于 2012-12-29T20:54:43.173 に答える