我只有一个简单的索引页面,显示ActiveRecord的所有项目。 我想要的是包含项目的表每X秒自动刷新一次(即从DB加载并呈现)。 我已经将索引操作重新定义为部分渲染
[app/admin/item.rb]
ActiveAdmin.register Item do
index do
render :partial => "items_list"
end
end
然后我有
[app/views/admin/items/_items_list.html.erb]
(我不介意使用ERB或ARB来编写部分内容) 首次加载页面时,列表会正确呈现。
我不确定我应该在页面中包含哪个Javascript来每隔X秒刷新一次列表。更具体地说,Javascript命令应该调用哪个URL? 我是否需要在控制器中定义任何自定义操作?
感谢您的任何建议。
托马斯
答案 0 :(得分:1)
我终于成功了。
[app/admin/item.rb]
ActiveAdmin.register Item do
...
index do
# do nothing; table will be filled with a partial via Javascript
end
collection_action :items_list do
@items = Item.all
render :partial => "items_list"
end
end
[app/views/admin/_items_list.html.arb]
table_for items do
column "attr_1"
column "attr_2"
column "attr_3"
end
[app/assets/javascripts/items.js]
$(document).ready( function() {
setInterval(function(){
$('#index_table_items').load('items/items_list');},1000);
})
最后附加到app/assets/javascripts/active_admin.js
以下
//= require inbox_files
这样我每秒都会更新列表表。 CSS也不会失真。