2011-04-02 57 views
1

我正在使用Boxy.js将我的/注册页面调用到模态窗口中。我想这是Ajax。当这种方式调用页面时,我希望页面不会与布局一起呈现。Boxy.js,XHR,Ruby on Rails

我想:

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

和:

def render(*args) 
    args.first[:layout] = false if request.xhr? and args.first[:layout].nil? 
    super 
    end 

在应用控制器,片段我GOOGLE了,但他们没有工作。 /注册仍然在布局中。

这里是头部的一部分时/注册由四四方方称为:

请求URL:http://本地主机:3000 /注册_ = 1301708866195

请求方法:GET

X -Requested-附:XMLHttpRequest的

回答

1

最佳做法是使用Rails的JS响应,就像这样:

respond_to do |format| 
    format.html 
    format.js { render :action_name, :layout => false } 
end 

但因为jQuery默认情况下不会发送正确XHR头,你需要像这样添加到您的application.js:

$.ajaxSetup({ 
    headers : { 
    'Accept' : 'text/javascript', 
    'X-Requested-With' : 'XMLHttpRequest' 
    } 
}); 

如果您希望只使用一些快速和肮脏的,试试这个:

respond_to do |format| 
    format.html { render :layout => false if request.xhr? } 
end