我的目标是,当有人发表评论时,5秒后,同一页面上的其他人都会看到添加评论而无需刷新页面。
我所做的是每隔5秒设置一个间隔来刷新我的div并渲染@microposts,它等于current_video.microposts.all
我在服务器日志中看到它每5秒刷新一次,但没有任何变化......它仍然显示相同的微博,没有新的微博。我的代码如下:
<script>
$(document).ready(function() {
setInterval(function() {
$.ajax({
type: "GET",
url: "/static_pages/refresher"
});
}, 5000);
});
</script>
首页html
<div class="microposts" id="reload">
<%= render @microposts %>
</div>
Refresher.js.erb
$("#reload").html('<%= j render @microposts %>');
静态页面控制器
def refresher
@microposts = current_video.microposts.all
respond_to do |format|
format.js
end
end
路线
get 'static_pages/refresher' => 'static_pages#refresher'
我做错了什么,如何解决?