使用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’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |