0

我想知道我这样做是否正确,或者是否有更好的方法:

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

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

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

4

1 回答 1

0

您可以在用户模型中定义一个字段“角色”,例如:

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。

于 2013-10-08T15:42:07.923 回答