Asset PipelineでController毎のJavaScriptを出力
Rails 3.1以降。
コントローラーを生成すると、app/assets/javascripts/controller_name.js.cofeeが生成されているけど、標準だと、production環境では、どのコントローラーのviewを表示しているかに関係なく、これが全部まとめられてapplication.jsになって出力されている。
development環境の場合も、application.jsにまとめられていないだけで、全ファイルが出力されてる。
下記をfalseにすれば、development環境でもapplication.jsにまとめられて出力される挙動を見られる。
#config/development.rb config.assets.debug = true
The Asset Pipeline — Ruby on Rails Guidesを読んでみました。
下記2箇所を修正すればOK
#app/assets/javascripts/application.js
//= require_tree . <-app/assets/javascripts/にあるものを読み込んでしまうので削除
#app/views/layout/application.html.erb <%= javascript_include_tag "application" %> <%= javascript_include_tag params[:controller] %> #<- これを追加
もっと細かく制御したければcontent_forなどを使って出力すれば良いかと。
CSSも同じような感じで。