根据要求设置布局。

时间:2013-08-21 19:49:09

标签: ruby-on-rails performance security layout render

我最近一直在努力研究一个Rails项目,基本上每个项目页面都需要通过常规导航(对于旧浏览器)和没有布局的AJAX来访问。我最近通过将它置于顶层ApplicationController:

找到了解决问题的方法
layout proc { request.xhr? ? false : "application" }

这一行应该导致所有控制器操作在正常访问时使用布局呈现,并且在通过AJAX访问时没有控制器,但它似乎有点太好了。

我想知道这种方法是否有任何安全性或性能下降,我忘记了?有没有更好的方法呢?有些模糊不清的旧浏览器是否有可能在没有布局的情况下呈现,应该是意外,反之亦然?

基本上,我能忽视什么吗?这有危险吗?

1 个答案:

答案 0 :(得分:0)

对于任何想要在将来使用它的人,我发现如果用xhr拉取视图,它确实会给Devise gem带来麻烦。出于某种原因,Devise喜欢将闪光灯转储到响应中而不是将其置于闪光灯中。它可能是某种方法的最后一行,我懒得去寻找,因为这意味着要打开设计黑盒子。

这在技术上并不是因为这条线,但仅供将来参考,请注意。不要在AJAX模态中设置设计视图,或者如果你这样做的话要小心。