我想要一些能自动重新加载帖子并将其插入div post_container的代码:
<%= link_to_remote "Update", {:action => 'ajax_update', :id => @posts, :update => 'post_container'}, :confirm => "Are you sure?" %>
我的home.html.erb中的这个rails片段实际上占用整个页面(标题,头部,正文标记)并将其放在div post_container中。为什么?另外,据我所知,ajax_update函数甚至不会被调用。
我将如何做我想做的事情?为什么整个页面加载发生?我正在使用Rails 2.3.11
(编辑:同样,单击链接时没有确认对话框。)
编辑2: 代码段的html输出:
<a confirm="Are you sure?" href="#" onclick="new Ajax.Updater('post_container', '/home', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('uaqM0Ie8to5pprvE6WcF416DN0vNeyO7Xa+JM6VZFY4=')}); return false;">Update</a>
答案 0 :(得分:0)
在您的控制器操作中,使用:layout =&gt;假
def ajax_update
@posts = Post.find(@posts)
render :layout => false
end
答案 1 :(得分:0)
找到正确的方法:
<%= link_to_remote "Update",:update => 'post_container', :url => {:action => 'ajax_update', :id => @posts, }, :confirm => "Are you sure?" %>
基于Rails 2.3.11 API文档中的信息:
http://api.rubyonrails.org/v2.3.11/classes/ActionView/Helpers/PrototypeHelper.html#M002185
此外,该页面上的periodic_call_remote方法对于不需要点击的自动调用也很有用。