2

为站点的管理部分存储和引用 JS 的最佳实践是什么?

目前,我有一个引用大量 JS(供应商和应用程序)的 application.js。我想将一些引用移动到另一个文件中,这样当用户不是管理员时就不会(不必要地)加载它。

我正在寻找以下行为:

  1. 如果用户不是管理员,则加载 application.js 中的所有内容,包括/assets/javascriptsvia下的所有文件//= require_tree .
  2. 如果用户是管理员,则加载普通用户会加载的所有内容。另外,加载一些特定的JS。我不确定在哪里存储 JS,因为我不希望它被捡起require_tree

任何关于在哪里存储代码以及如何调用它的建议将不胜感激。

4

1 回答 1

2

也许你可以做这样的事情。创建一个文件,该文件需要管理员用户所需的admin_application.js所有代码,不包括指令,并维护一个未更改的文件,其中包含非管理员用户的所有要求和内容。 如果它们共享一个共同的布局,那么在你的标题标签中放置一些逻辑来处理这两种情况就很容易了。例子: .jsrequire_treeapplication.js

应用程序.html.erb

<header>
  <% if current_user.is_admin? %>
    <%= javascript_include_tag "admin_application" %>
  <% else %>
    <%= javascript_include_tag "application" %>
  <% end %>
</header>

我认为这是解决您的问题的一种简单而公平的方法。

于 2012-08-02T18:33:07.147 回答