我正在开发一个使用Turbolinks gem的Ruby on Rails 4应用程序。当单击链接时,我注意到布局仍然在服务器端呈现,但是Turbolinks JavaScript只是从呈现内容中获取了body。我的问题是,在控制器端是否可能确定请求是通过Turbolinks进行的。在Turbolinks进行请求时,如果需要设置布局为false,以避免执行不必要的代码。在我的ApplicationController中,我已经有以下代码:
# Don't use layout when AJAX request
layout proc { |controller| controller.request.xhr? ? false: "application" }
这段代码可以防止通过jQuery进行的AJAX请求呈现标题,但是当使用Turbolinks时似乎没有任何作用。