Railsでcontroller名、action名に対応したjsファイルを読み込む

Ruby on Rails
rails


個別actionごとにjsファイルを定義したいとき。

たとえば、

app/assets/[コントローラ名]/[アクション名].js

を対応したテンプレで読み込む。

app/views/layout/application.htmlなどのレイアウトファイルに以下のように記述。

   <%= javascript_include_tag params[:controller] if AppName::Application.assets.find_asset('#{params[:controller]}.js') %>
   <%= javascript_include_tag '#{params[:controller]}/#{params[:action]}'  if AppName::Application.assets.find_asset('#{params[:controller]}/#{params[:action]}.js') %>

Rails 4.0.xで検証。Rails 3でも動くっぽい。

参考

Rails 3.1 asset pipeline: how to load controller-specific scripts?
If I generate a new controller in Rails 3.1, also a javascript file with the name of the controller will added automatic...

コメント