Bri*_*asa 6 ajax jquery ruby-on-rails
我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
小智 8
您必须将js格式添加到respond_to块:
format.js do
render :update do |page|
page.replace_html "id_of_your_div" :partial => "something"
end
end
Run Code Online (Sandbox Code Playgroud)
要么
format.js do
render :js => "$('#id_of_your_div').html('#{escape_javascript(render_to_string(:partial => 'something')}');"
end
Run Code Online (Sandbox Code Playgroud)
甚至你可以将javascript代码放在一个名为new.js.erb的文件中,而不需要format.js块.
我建议你阅读rails指南:http://guides.rubyonrails.org/layouts_and_rendering.html#using-render-with-update
将此行添加到您的respond_to块:
format.js { render :layout => false }
Run Code Online (Sandbox Code Playgroud)
这表示对于javascript请求,不要渲染布局.现在它应该适用于ajax请求和常规Web链接.