加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:52:30 所属栏目:百科 来源:网络整理
导读:在提交表单后,我发现了一些关于使用Ajax更新部分的问题和答案.但我的问题是?更简单?,我只是想每隔几秒重新加载一个部分并加载新数据.这真的不难,我记得在Rails 2.3中做了类似的事情,但我无法在任何地方找到答案. 基本上,我有一个show.html.erb渲染部分像这
在提交表单后,我发现了一些关于使用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’

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读