感谢您抽时间阅读!
好吧,这就是我想要做的,我有 Rails 应用程序,它显示一个表,显示数据库中的一些信息,我需要它来自动重新加载表(如果可能在部分重新加载,所以我不必重新加载整个页面。)当新数据添加到数据库时。
提前致谢!
感谢您抽时间阅读!
好吧,这就是我想要做的,我有 Rails 应用程序,它显示一个表,显示数据库中的一些信息,我需要它来自动重新加载表(如果可能在部分重新加载,所以我不必重新加载整个页面。)当新数据添加到数据库时。
提前致谢!
为了重新加载表数据,您必须首先通知客户端内容已更改,然后实际重新加载内容。为此,您必须在客户端使用 Javascript/Ajax:
jQuery 随 Rails 一起提供,将非常有效地处理 Ajax 部分。请参阅jQuery.ajax和jQuery.replaceWith以用新内容替换旧内容。
在提供表格的控制器操作上,使用一个参数,以便您可以在从 Ajax 调用时禁用布局呈现。这样控制器将只提供相关内容(包含表格的视图)。
我会这样处理:
setInterval(function(){
$.get("/catalog/1/new_items.js", function(data){
$("new_items").html(data);
},
"html")
}, 30000);
new_items.js.erb 的内容:
<%= render partial: 'new_items', object: @catalog.new_items.last, as: :item %>
使用您想要的任何内容创建上述部分(如果您不需要部分,您可以将 div 的全部内容写入 new_posts.js.erb 文件中。)
将最新方法添加到您的目录控制器中,该方法定义@catalog
等以供latest.js.erb
使用。
将 get '/latest' 添加到您的 routes.rb