you*_*786 5 ajax ruby-on-rails-3
在提交表单后,我发现了一些关于使用Ajax更新部分的问题和答案.但我的问题是?更简单?,我只是想每隔几秒重新加载一个部分并加载新数据.这真的不难,我记得在Rails 2.3中做了类似的事情,但我无法在任何地方找到答案.
基本上,我有一个show.html.erb渲染部分像这样:
<div id="latest_post">
<%= render :partial=>'info/latest', :object=>@user, :as=>:user %>
</div>
Run Code Online (Sandbox Code Playgroud)
部分文件位于app/views/info/_latest
<% post = user.posts.last %>
<h1>Last Post</h1>
<p><%= post.content %></p>
Run Code Online (Sandbox Code Playgroud)
我只想让latest_post div每30秒更新一次.请帮忙!
事实证明答案有点复杂:
第 1 步:使用 JavascriptsetInterval函数和 jQuery$.get()函数来加载页面,例如/users/1/posts/latest.
setInterval(function(){
$.get("/users/1/posts/latest.js", function(data){
$("latest_post").html(data);
},
"html")
}, 30000);
Run Code Online (Sandbox Code Playgroud)
第 2 步:创建一个latest.js.erb并将其放入您的app/views/posts文件夹中。
内容latest.js.erb:
<%= render partial: 'posts/latest', object: @user.posts.last, as: :post %>
Run Code Online (Sandbox Code Playgroud)
步骤 3:使用您想要的任何内容创建上述部分(如果不需要部分,您可以将 div 的全部内容写入文件中latest.js.erb。)
步骤 4:向您的 、 中添加一个最新方法PostsController,该方法定义@user等以供latest.js.erb使用。
第 5 步:添加get '/latest'到您的routes.rb
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |