如何在 Rails 3.1 中显示控制器特定的 javascript?

2023-11-24

我的资产文件夹结构是这样的

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(使用前将#替换为@)

如何在 Rails 3.1 中显示控制器特定的 javascript? 的相关文章

随机推荐