Rails ajax请求只加载视图html

我正在尝试使用rails和jQuery创建一个支持AJAX的网页。 我遇到的问题是,当我尝试使用jQuery的AJAX方法将视图加载到div中时,我将使用视图返回我的应用程序布局。 有没有办法只检索视图数据,如果它是一个AJAX请求,但加载我的应用程序布局,如果它不是一个AJAX请求?

这是我调用的控制器方法:

def new @blog = Blog.new respond_to do |format| format.html # Goes to the new.html.erb view. format.xml { render :xml => @blog } end end 

谢谢您的帮助。

将此行添加到respond_to块:

 format.js { render :layout => false } 

这表示对于javascript请求,不要渲染布局。 现在它应该适用于ajax请求和常规Web链接。

您必须将js格式添加到respond_to块:

 format.js do render :update do |page| page.replace_html "id_of_your_div" :partial => "something" end end 

要么

 format.js do render :js => "$('#id_of_your_div').html('#{escape_javascript(render_to_string(:partial => 'something')}');" end 

甚至你可以将javascript代码放在一个名为new.js.erb的文件中,而不需要format.js块。

我建议你阅读rails指南: http : //guides.rubyonrails.org/layouts_and_rendering.html#using-render-with-update