首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有条件地禁用Ramaze布局?

如何有条件地禁用Ramaze布局?
EN

Stack Overflow用户
提问于 2012-05-23 05:31:27
回答 1查看 228关注 0票数 1

如果请求恰好是一个ajax请求(例如,request.xhr?== true),我希望控制器方法通过禁用/拒绝布局来响应。

下面的代码似乎不起作用--它还是返回了布局

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 05:58:45

您可以通过如下方式调用respond!来绕过视图和布局渲染:

代码语言:javascript
复制
respond!(body, status, 'Content-Type' => 'whatever/foo')

你的身体在哪里(json ?)正文,状态HTTP响应码。然后,您可以提供具有返回标头的散列。

但是,如果请求以“.json”结尾,您可能会对provides感兴趣,因为它可以以不同的方式处理请求。有关这方面的更多信息,请参阅http://ramaze.net/documentation/file.views.html#View_Mapping

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10710487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档