由於拉胡爾已經提到的,是的application.js預編譯和每個動作都一樣。 所以它不依賴於特定的控制器。 Application.js應該包含所有(或大部分)操作所需的JavaScript。
但是,您可以使用嵌套佈局來擴展您的應用程序佈局。讓我們假設以下結構:
... app/view/layouts/application.html.erb ...
<html>
<head>
<%= javascript_include_tag 'application' %>
<%= yield :javascripts %>
<%= stylesheet_link_tag 'application' %>
<%= yield :stylesheets %>
</head>
<body>
<%= yield %>
</body>
</html>
和:
... app/view/layouts/products.html.erb ...
<% content_for :stylesheets do %>
<%= stylesheet_include_tag 'products' %>
<% end %>
<% content_for :javascripts do %>
<%= javascript_include_tag 'products' %>
<% end %>
<%= render :template => 'layouts/application' %>
所以,你只需要在產品,文件添加/需要您的樣式表和JavaScript的。 注意,這裏的所有代碼應該被看作是僞代碼,我沒有測試它。
信息摘自"official" Render-Guide。
我剛剛看到了railscast 279,其中Ryan提到v可以通過在鏈接中使用require_directory而不是require_tree來指定要添加application.js文件的文件夾。我想知道是否有類似的方法來添加控制器特定的JS。 – Rahul
Ryan提到你想編譯的文件夾它不在運行時:) – fl00r