使用AJAX(不是表单)更新Rails 3部分

前端之家收集整理的这篇文章主要介绍了使用AJAX(不是表单)更新Rails 3部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在提交表单后,我发现了一些关于使用Ajax更新部分的问题和答案.但我的问题是?更简单?,我只是想每隔几秒重新加载一个部分并加载新数据.这真的不难,我记得在Rails 2.3中做了类似的事情,但我无法在任何地方找到答案.

基本上,我有一个show.html.erb渲染部分像这样:

<div id="latest_post">
    <%= render :partial=>'info/latest',:object=>@user,:as=>:user %>
</div>

部分文件位于app / views / info / _latest

<% post = user.posts.last %>
<h1>Last Post</h1>
<p><%= post.content %></p>

我只想让latest_post div每30秒更新一次.请帮忙!

解决方法

事实证明答案有点复杂:

第1步:使用Javascript的setInterval函数和jQuery的$.get()函数来加载页面,例如/ users / 1 / posts / latest.

setInterval(function(){
  $.get("/users/1/posts/latest.js",function(data){
    $("latest_post").html(data);
  },"html")
},30000);

第2步:创建latest.js.erb并将其放入app / views / posts文件夹中.

latest.js.erb的内容

<%= render partial: 'posts/latest',object: @user.posts.last,as: :post %>

第3步:使用您想要的任何内容创建上述部分(如果您不需要部分,则可以在latest.js.erb文件中写入div的全部内容.)

步骤4:向PostsController添加最新方法,为最新的.js.erb定义@user等.

第5步:在您的routes.rb中添加get’/ latest’

原文链接:https://www.f2er.com/ajax/453728.html

猜你在找的Ajax相关文章