现在在开发中遇到这样的一个问题: 就是,当页面进行 ajax 请求时,往往请求的是 Json 数据,但是,我现在想在 controller 中直接渲染页面,之后输出到页面,这是一个 ajax 请求,直接输出 html???
#4 楼 @zhaoguobin 之前,我是直接返回的 json , render :json => @products ; 之后用 js 在页面拼装数据显示,我现在就想,直接后台输出 html,不需要 js 解析,只需要 $.get(url, {}, function(html){ $('#d').html(html); })
默认渲染视图时,会在外面套上布局(layout),
render :layout => false
返回的就是当前 action 对应的视图,没有 layout。所以你想返回一段 html,就把需要的 html 放在这个视图里的好了吧?
在发 ajax 请求的时候指定浏览器接收的格式,用 jquery 的话指定 datatype 为 html,这样后台发送回来的的应该是 format.html