Asset PipelineとView Helper

Railsの初期状態はapp/views/layout/application.html.erbに

<%= stylesheet_link_tag    "application", :media => "all" %>
<%= javascript_include_tag "application" %>

って書いてある。


これを読み込んだ先の=require_tree .
assets/stylesheets
assets/javascripts
の中身が全て展開されちゃう。


以下のようすれば
コントローラー毎に一意のファイルが読み込まれるようになる

<%= stylesheet_link_tag params[:controller] %>
<%= javascript_include_tag params[:controller] %>


でも、これだけだとjQueryjQuery-ujsがなくなっちゃうので

// require jquery
// require jquery-ujs

をassets/javascripts/application.js
に書いておけば読み込んでもらえる。


ビューヘルパー側からの呼び出しは

<%= javascript_include_tag "application" %>
<%= javascript_include_tag params[:controller] %>

の順序で読み込まないとUncaught ReferenceError: $ is not definedって怒られちゃう。


個別に

<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "jquery_ujs" %>

とかやってもいいけど、まとめたほうが管理しやすいなーって

Ruby on Rails 3 アプリケーションプログラミング

Ruby on Rails 3 アプリケーションプログラミング