如果请求恰好是一个ajax请求(例如,request.xhr?== true),我希望控制器方法通过禁用/拒绝布局来响应。
下面的代码似乎不起作用--它还是返回了布局
class FooController < Ramaze::Controller
layout :default
def bar
if request.xhr?
layout nil
"return something here" #just return this string without the layout
else
... #return with full layout
end
end发布于 2012-05-23 05:58:45
您可以通过如下方式调用respond!来绕过视图和布局渲染:
respond!(body, status, 'Content-Type' => 'whatever/foo')你的身体在哪里(json ?)正文,状态HTTP响应码。然后,您可以提供具有返回标头的散列。
但是,如果请求以“.json”结尾,您可能会对provides感兴趣,因为它可以以不同的方式处理请求。有关这方面的更多信息,请参阅http://ramaze.net/documentation/file.views.html#View_Mapping。
https://stackoverflow.com/questions/10710487
复制相似问题