为网站管理部分存储和引用 JS 的最佳实践是什么?
目前,我有一个 application.js,它引用了很多 JS(包括供应商和应用程序)。我想将一些引用移动到另一个文件中,这样当用户不是管理员时就不会加载(不必要的)。
我正在寻找以下行为:
- 如果用户不是管理员,则通过
//= require_tree 加载 application.js 中的所有内容,包括
/assets/javascripts
下的所有文件。 - 如果用户是管理员,则加载普通用户会加载的所有内容。另外,加载一些特定的JS。我不确定在哪里存储 JS,因为我不希望它被
require_tree
任何关于在哪里存储代码以及如何调用它的建议将不胜感激。
最佳答案
也许你可以做这样的事情。创建一个 admin_application.js
文件,该文件需要管理员用户所需的所有 .js
代码(不包括 require_tree
指令),并保持不变application.js
具有非管理员用户的所有要求和内容。
如果它们共享通用布局,则可以很容易地将一些逻辑放入 header 标记中来处理这两种情况。示例:
application.html.erb
<header>
<% if current_user.is_admin? %>
<%= javascript_include_tag "admin_application" %>
<% else %>
<%= javascript_include_tag "application" %>
<% end %>
</header>
我认为这是解决您的问题的一种简单且公平的方法。
关于ruby-on-rails-3 - 管理部分的 javascript_include_tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783380/