2

我是 Rails、jquery 等的新手。我创建了一个新项目,一切正常。现在我想每隔几秒刷新一个 HTML 表。

我在视图中的表格如下所示:

<table>
<% @new.each do |s| %>
    <tr>
        <td><%= s.name %></td>
        <td> <%= s.status %> </td>
        <td> <%= s.timeup %> </td>

    </tr>
<% end %>
</table>

每隔几秒钟它就会获取新数据,我不想每次都刷新网站。

如果一行被删除,我还想在该行消失时有一个动画。

我真的对Javascript一无所知,所以请为假人解释一下;)


如果我明白你需要什么

http://jsfiddle.net/ZffFv/8/

 .result-snippets {
position: absolute;
top: 100px;
left:300px;
}
4

1 回答 1

3

您可以采用两种方式,实时表引用(您将需要推送器或私人酒吧之类的东西)或固定时间刷新(仅使用 jquery 刷新表)

对于第一个,我向您推荐这个 RailsCasts:http: //railscasts.com/episodes/316-private-pub

第二个是一个简单的例子:

首先调整您的控制器,使其可以响应 js 请求:

控制器:

  def show   
    @group = @store.group
    respond_to do |format|
      format.html # show.html.erb
      format.js
      # format.json { render json: @store }
    end
  end

然后每隔 X 时间进行一次 ajax 调用:

$.ajax({
  type    : 'POST', //Check the type of your request
  url     : "http://localhost:3000/route",   //the route where you can fetch the table 
  data    : { tester : { name : 'boom' } },
  success : function(data) {
              alert(data);          
            },  
});

那么你需要创建你的响应视图:

view.js.erb:

$('#table').replaceWith('<%= j render :partial => "layouts/tablepartial"%>');

然后你做一个部分:

_tablepartial.html.erb:

<%if @instanceObject%>
    redo table here
<%end%>

一开始我知道它会让人不知所措,但如果你真的是一个初学者,你应该尝试学习更多基本的东西,如果你需要任何帮助,发布它。干杯

于 2013-08-08T19:33:38.243 回答