7

Turbolinks gem を使用する Ruby on Rails 4 アプリケーションを開発しています。リンクをクリックすると、レイアウトはサーバー側でレンダリングされますが、Turbolinks JavaScript はこのレンダリングされたコンテンツから本文を取得するだけです。私の質問は、コントローラー側で、要求が Turbolinks 経由で行われたかどうかを判断できるかどうかです。基本的に、Turbolinks 経由でリクエストが行われた場合、不要なコードを実行しないようにレイアウトを false に設定します。私の ApplicationController には、次のコードが既にあります。

# Don't use layout when AJAX request
layout proc { |controller| controller.request.xhr? ? false: "application" }

このコードは、jQuery 経由で AJAX リクエストを行う場合、AJAX リクエストがヘッダーをレンダリングするのを防ぎますが、Turbolinks に関しては何もしていないようです。

4

1 に答える 1