jsをコントローラー毎またはアクション毎に読み込みたいです。
以下を記事を参考にapplication.html.slimに部分テンプレを設定し、部分テンプレ側でjsを指定する感じです。
ちなみに、jsファイルは全てassets/javascripts/js/
におきました。
各ファイルのコードは以下の通りです。(userコントローラーのindexアクションで使用するjsを設定する)
▼application.html.slim
Ruby
1・・・ 2・・・ 3body 4 ・・・ 5 ・・・ 6 ・・・ 7 = render "#{controller.controller_name}/head_#{controller.action_name}" rescue nil
▼_head_index.html.slim (1)
Ruby
1= javascript_include_tag 'js/post' 2= javascript_include_tag 'js/logout'
しかし、この方法だと、そもそもブラウザにhtmlで描画された際に、なぜかjsが読み込まれません。
ちなみに、ディレクトリが正しくない以下のタグに設定すると読み込まれます。
▼_head_index.html.slim (2)
Ruby
1= javascript_include_tag 'post' 2= javascript_include_tag 'logout'
html
1<script src="/javascripts/posts.js"></script>
ただ、これだと当然jsファイルはそこにはないので、ダメです。
また、▼_head_index.html.slim (1)で、config/initializers/assets.rb
に、以下のように記載してみました。
ruby
1Rails.application.config.assets.precompile += %w( js/logout.js )
htmlで描画されると以下のようなタグが出力されていました。
html
1<script src="/assets/js/logout.self-b7d66f00d96d60c3c9a5ed6441397381b95f616741f9ab30fe0311bcb1b6958c.js?body=1"></script>
こうすると正しく読み込まれているような気がします。
しかし、全てのjsファイルをconfig/initializers/assets.rb
に記載するのはあまりにも面倒です。
コントローラー毎、アクション毎に読み込むjsを設定する良い方法はないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/01 03:39
2016/11/01 07:22