3

我最近一直在为 Rails 项目苦苦挣扎,其中基本上项目的每个页面都需要通过常规导航(对于较旧的浏览器)和没有布局的 AJAX 进行访问。我最近通过将它放在 ApplicationController 的顶部找到了解决问题的方法:

layout proc { request.xhr? ? false : "application" }

此行应该导致所有控制器操作在正常访问时使用布局呈现,并且在通过 AJAX 访问时不使用控制器,但这似乎有点好得令人难以置信。

我想知道我忘记了这种方法是否存在任何安全性或性能下降?有更好的方法吗?是否有可能一些晦涩的旧浏览器可能会在意外情况下呈现没有布局,反之亦然?

基本上,我是否忽略了什么?这会很危险吗?

4

1 回答 1

0

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

从技术上讲,这不是因为这条线,但仅供将来参考,请注意。不要将设计视图放在 AJAX 模式中,否则请小心。

于 2013-08-22T17:30:32.973 回答