railsで特定のjsを読み込ませるようにする設定
全部は入らないから、このページだけjsを読めるようにしたい!って思うことは多いはずです。
ちなみに、自分はturbolinks
を捨ててます。
イベントが発火しないとか、しんどいので・・・
準備
まずは、application.jsから全体を読み込むような設定をなくします。
application.js
//= require_tree . ←削除
//= require_tree .
が付いていると、js配下のものを全てコンパイルするので、これを外します。
次に、コンパイルするファイルを指定します。
config/initializers/assets.rb
# Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. Rails.application.config.assets.precompile += %w( admin.js )
これはadmin.jsというものは事前にコンパイルするように設定します。
jsを読み込みたい場所にこのtagをつけます。
名前は好きにしてください。
= yield :javascript
読み込みたいviewにcontent_for
で呼び出すようにします。
- content_for(:javascript) = javascript_include_tag 'admin'
これでadmin.js は読み込みされるようになります。
簡単な説明ですが、他にもやり方があると思いますが、これがしっくりきました。