content_forで特定のページのみ使う処理をする

特定のページでjsだけ読ませたいというのは、よくあることだと思います。

そんな時のためのcontent_forというものがあります。

content_for - リファレンス - - Railsドキュメント

使い方

読み込みをさせる場所にyieldを使います。

app/views/layouts/application.html.slim

...
...
= render 'footer'
= yield :js

jsを下の方で読むという方法ですね。

上からページは読まれていくので、jsは下の方に書く方が読み込みが早くなります。

そして、特定のjsを読み込ませるページです。

app/views/users/index.html.slim

- content_for :js do
  javascript:
    alert(hoge);

例えば、hogeってalertをしたい場合ですね(ないと思いますが・・・)

これでusers/indexアクションのみ上のjsが読み込まれます。

もちろん、= render 'hoge'という風にpartialを読み込ませることもできます。

jsは割と使い道が多いのではないでしょうか?

以上です。