Rails:基于用户角色的Javascript

Rails: Javascript based on user role

本文关键字:角色 Javascript 用户 于用户 Rails      更新时间:2023-09-26

我想知道我是否做对了,或者是否有更好的方法:

在我的 Rails 应用程序中,我有一些页面,根据登录的用户,视图的某些方面可以针对该页面进行更改(处理这些更改的是 Javascript(即禁用复选框等)。

目前,我让应用程序.html.erb文件将div添加到标有角色名称的页面。Javascript 检查哪个div 处于活动状态,并相应地执行 Javascript。我对这种方法不太满意,所以我正在寻找一些替代方案。

我考虑过拥有单独的 Javascript 文件,并且只包含一些基于用户角色的文件,但这消除了在生产中将所有 Javascript 合并到一个文件中的能力(不是吗?

您可以在用户模型中定义字段"角色",例如:

class User
  field role
  is_admin?
    role == :admin
  end
end

在您看来:

<% if current_user.is_admin? %>
  <div class="one-code">
<% else %>
  <div class="two-code">
<% end %>

当 Rails 渲染视图时,根据角色current_user仅渲染一个div。