あなたの問題はさまざまな方法で解決できます。
アセットを動的に追加する
Add to our application helper the following method:
module ApplicationHelper
def include_related_asset(asset)
# v-----{Change this}
if !YourApp::Application.assets.find_asset(asset).nil?
case asset.split('.')[-1]
when 'js'
javascript_include_tag asset
when 'css'
stylesheet_link_tag asset
end
end
end
end
Call the helper method in your layout
-file:
<%= include_related_asset(params[:controller].to_param + '_' + params[:action].to_param . 'js') %>
Create specific assets for your controller actions. E. g. controller_action.js
Use yield
- Add
<%= yield :head%>
to your layout head
Include your assets from your action views:
<% content_for :head do %>
<%= javascript_include_tag 'controller_action' %>
<% end %>
詳細については、 Railsガイドをご覧ください。
コントローラのデータをJavaScriptに渡すには、次のようにします。
<%= javascript_tag do %>
window.error_message = '<%= j error_message %>';
<% end %>
詳細については、 RailCast Episode#324 をご覧ください。