Rails AJAX将整个页面加载到'更新' DIV

时间:2012-03-17 03:13:26

标签: ruby-on-rails ajax

我想要一些能自动重新加载帖子并将其插入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>

2 个答案:

答案 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方法对于不需要点击的自动调用也很有用。