Javascript 機能を Haml ビューに組み込みたいのですが、すべてのビューに挿入したくありません。Javascript ファイルを public/javascripts に配置する必要がありますか、それとも app/assets/javascripts に配置してユーザーから隠し、haml ビュー ファイル内から参照することはできますか?
可能であれば、これらの両方のオプションをどのように実行しますか?
Javascript 機能を Haml ビューに組み込みたいのですが、すべてのビューに挿入したくありません。Javascript ファイルを public/javascripts に配置する必要がありますか、それとも app/assets/javascripts に配置してユーザーから隠し、haml ビュー ファイル内から参照することはできますか?
可能であれば、これらの両方のオプションをどのように実行しますか?
あなたはただ使うべきです
!!!
%html
%head
= javascript_include_tag "my_js_file"
ある場所に固有の場合は、使用する必要がありますcontent_for
!!!
%html
%head
= yield(:javascripts)
そして、あなたの見解では
- content_for :javascripts do
= javascript_include_tag "my_js_file"
javascriptをhamlに直接含めたい場合は、次を使用できます:javascript
:javascript
$(function() { alert("js inside haml"); }
これをパーシャルに入れ、パーシャルをレンダリングするだけで、ビューをきれいに保つことができます。
JavaScript を参照するだけでブラウザに取り込ませたい場合は、javascript_include_tag
いつものように使用する必要があります。ここでは、javascript ファイルをマニフェストに含めるのではなく、マニフェストにする必要がありますapplication.js
。http://guides.rubyonrails.org/asset_pipeline.htmlconfig.assets.precompile
に従って、application.rb にマニフェストを忘れずに追加してください。
(あなたのハムルで):
= javascript_include_tag 'somefile'
(config/application.rb 内):
config.assets.precompile += ['somefile.js']
JavaScript が小さくて単純な場合は、Javascript を HAML に直接含めることをお勧めします。
:javascript
alert('hi hi!')
それ以外の場合は、アセット パイプラインを使用する必要があります。JavaScript が前処理、圧縮、縮小されていることを確認します。また、JavaScript を適切に整理し (スクリプトとベンダー スクリプトを分離するなど)、簡単にテストできるようにする ( jasmine / jasminerice / evergreenなどのテスト フレームワークを使用する) のにも役立ちます。アセット パイプラインを初めて使用する場合は、こちらをお読みください =)