从部分重新加载信息

时间:2016-08-01 20:27:15

标签: ruby-on-rails

我有一个呈现div / table的索引:

index.html.erb

<% if session[:user_permissions].include?(75) %>
  <div class="row ">
    <div class="col-xs-12 col-sm-offset-1 col-sm-10 col-md-offset-1 col-md-10 col-lg-offset-1 col-lg-10">
      <div>
        <strong>Grupos de Atendimento</strong>
      </div>
      <hr class="name-softphone">
    </div>
  </div>
  <p></p>
  <%= render partial: "table" %>
<% else %>
...

http://pastebin.com/VyDt6cSX

表_table.html.erb:

http://pastebin.com/Wqb7PNg4

所以,我在我的控制器上得到了这个表的信息,但是我需要每30秒自动重新加载这个部分的信息。

我如何使用AJAX做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. 将表格放入具有uniq id:

    的元素
    <div id="table-polling"><%= render partial: "table" %></div>
    
  2. 为长轮询创建控制器操作并为其添加路由。为您的表生成添加所有必要的数据。

  3. 为此轮询操作创建视图:

    $('#table-polling').html("<%= escape_javascript render :partial => 'table' %>");  
    
  4. 使用此表格代码添加到目标页面上的js(包含用于长轮询的已创建操作的路径):

    $(document).ready(function() {
      setInterval(function () {
        $.ajax('users/<%= current_user.id %>/table_polling');
      } , 30000);          
    });