当格式为JS(需要烘干)时渲染无布局

Aen*_*Tan 5 javascript ruby-on-rails dry xmlhttprequest ruby-on-rails-3

我在控制器中有这个:

respond_to do |format|
  format.html
  format.js { render :layout => false }
end
Run Code Online (Sandbox Code Playgroud)

当请求是Ajax时,哪些输出没有布局.我在许多动作和控制器中复制它.我怎么干这个?

dog*_*unk 18

我在我的应用程序控制器中使用它:

class ApplicationController < ActionController::Base
  layout proc{|c| c.request.xhr? ? false : "application" }
end
Run Code Online (Sandbox Code Playgroud)

其中包括.js,.json等.


Pet*_*acs 6

好吧,这个答案是晚了几年,但您也可以通过重命名将其作为特定于html的布局创建apps/views/layouts/application.html.erb.

如果mime类型不匹配,Rails足够聪明,不会使用js响应的布局.

很可能更新版本的rails会为你解决这个问题,但从3.0.20开始,这对我有用.