Tom*_*man 12 ajax ruby-on-rails
大多数时候,当请求来自AJAX时,我不想呈现布局.为此render :layout => !request.xhr?,我经常在我的控制器动作中写作.
如何将其设为默认值?也就是说,我希望能够写作
def new
Post.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
并具有功能
def show
Post.find(params[:id])
render :layout => !request.xhr?
end
Run Code Online (Sandbox Code Playgroud)
(我很乐意在极少数情况下手动指定布局,我想使用它.)
Har*_*tty 11
这个怎么样?
class UsersController < ApplicationController
layout proc {|controller| controller.request.xhr? ? false : "application" }
end
Run Code Online (Sandbox Code Playgroud)
为了使其成为永久不为任何XHR请求呈现布局的默认设置,您可以这样做:
class ApplicationController < ActionController::Base
layout proc { false if request.xhr? }
end
Run Code Online (Sandbox Code Playgroud)
当请求是XHR请求时,它会在没有布局的情况下呈现请求的视图.否则,它使用默认布局行为,该行为通过继承查找布局.
这与说法不同controller.request.xhr? ? false : 'application',因为这将始终呈现application非XHR请求的布局,这有效地禁用了继承查找.
另请参阅ActionView文档以获取nil参数和布局继承.
| 归档时间: |
|
| 查看次数: |
2119 次 |
| 最近记录: |