我怎样才能在特定的控制器和方法中显示JavaScript?

时间:2012-12-29 20:48:11

标签: ruby-on-rails ruby-on-rails-3 jquery

我有很多型号。现在我想将JavaScript显示给特定的控制器和方法。

例如,如果我有这样的代码,并且只想在 communities / show 中显示它 我应该将它粘贴在view / communities / show.html.erb的头部吗? 还是有更聪明的方法来管理这类事情? 显然,如果我将它放在show文件的头部,它看起来很难看,因为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 %>

2 个答案:

答案 0 :(得分:4)

<强> communities.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 -%>

<强> communities_layout

<head>
<title>Merry Christmas!</title>
<%= yield(:head) -%>
</head>

答案 1 :(得分:1)

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

  1. show.html.erb的顶部:

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

    另请参阅this answer

  2. Where do you put page specific JavaScript code并查看How Asset Pipeline works