javascriptの定義、包含、実行を分離します。
これが私がすることです:
- コードを関数にラップします
javascript1.js
。javascriptファイルをいつ解釈するかは問題ではありません。そのファイルを解釈すると、後で使用するための関数が追加されるだけだからです。
- 'javascript_footer'ビューをレイアウトに追加します(たとえば、
render
呼び出しまたはを介してjavascript_include_tag
)。これは、すべてのビューに自動的に含まれます。
- そのフッターで、で定義された関数を呼び出します
javascript1.js
。
最初のコメントに応えて:
layouts/application.html.erb
もちろん、手順1と3をスキップして、JavaScriptを使用して追加できます。
<%= javascript_include_tag "javascript1" %>
(erbテンプレートを使用していて、ファイルがjavascript_include_tag
メソッドが自動的に検出する場所にあると仮定します(http://guides.rubyonrails.org/layouts_and_rendering.htmlを参照)。
2番目のコメントへの応答:
確かに、あなたの最初のコメントに対する私の回答はそれを扱っていません。マニフェストファイルには何を含めるかが明示的にリストされているため、アセットパイプラインからファイルを除外する簡単な方法はありません。解決策は、を除くすべてを移動javascript1.js
しassets/javascripts/all
、に変更//= require_directory .
すること//= require_directory all
です。別の、醜いが実用的な解決策は//= require_self
、下部に追加し、の内容をに追加することjavascript1.js
ですapplication.js