ruby-on-rails-3 - 管理部分的 javascript_include_tag

标签 ruby-on-rails-3

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

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

我正在寻找以下行为:

  1. 如果用户不是管理员,则通过 //= require_tree 加载 application.js 中的所有内容,包括 /assets/javascripts 下的所有文件。
  2. 如果用户是管理员,则加载普通用户会加载的所有内容。另外,加载一些特定的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/

相关文章:

ruby-on-rails-3 - 如何将 Best In Place 与 twitter bootstrap 结合使用

ruby-on-rails - 使用现有的 SQL Server 数据库和 Ruby on Rails

ruby-on-rails - 我如何在 Rails 3 中处理来自 Ajax 请求的响应?

ruby-on-rails - 自定义收集路线的polymorphic_path

Heroku 上 PostgreSQL 数据库的 SQL 错误 - 无法运行更新

ruby-on-rails - Rails 检查用户 ID 是否在数组中

ruby-on-rails - 仅显示帖子中的一些单词作为预览

ruby-on-rails - 参数不会传入子类

ruby-on-rails - 轮胎/elasticsearch 远程服务器连接错误

sql - 如何优化/缓存 Rails 查询