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

Ruby on Rails
rails


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

たとえば、

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<%= 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') %>
<%= 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') %>
   <%= 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...

Comments

タイトルとURLをコピーしました