技術系ブログ

とにかく小ネタで

【rails】任意のviewのみで特定のjsを読み込む。

とっても簡単です。 参考: Rails 必要なJavaScriptのみを読み込む | | KeruuWeb
RailsがJavaScriptやスタイルシートを読み込む仕組み - りょうたくの技術ブログ

Asset Pipelineとは

そもそも、任意のveiwのみでjsが読み込んでくれないとは、Asset Pipelineがしっかり機能しているからです。

アセットパイプライン - Rails ガイド

アセットパイプラインがアセットを連結するとこが第一の機能なのです。 すべてのJavaScriptファイルを1つのマスター.jsファイルに連結し、すべてのCSSファイルを1つのマスター.cssファイルに連結します。
そのため任意のviewのみで読み込むためには手を加える必要があります。

ツリー読み込みの停止

すべて自動で読み込むのを書き換えます。

#app/assets/javascripts/application.js
-    //= require_tree .
+  // require_tree .

読み込ませたいjsファイルを記述

#config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( test.js )

最後に表示させたいviewに読み込ませます

= javascript_include_tag "test.js"

おしまい