我的资产文件夹结构是这样的
assets
javascripts
products
--product.js
--productValidate.js
store
--store.js
我希望仅当调用产品控制器中的操作时将project.js 和projectValidate.js 添加到我的application.js 中作为资产管道的一部分,而当调用商店控制器中的操作时将store.js 添加到我的application.js 中。我如何在 Rails 3.1 中实现这一目标?
正如 Rahul 已经提到的,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>
and a:
... 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。
请注意,这里的所有代码都应该被视为伪代码,我没有测试它。
信息取自“官方”渲染指南.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)