我有一个属于客户(用户类型)的报告对象。 我进行了设置,以便客户能够授予或删除管理员查看客户报告的权限。 我需要知道我需要采取什么步骤或方向才能使报告对管理员用户可见。 管理员用户应该只能查看报告(显示)并查看他们有权访问的报告索引。
我在想也许我应该创建一个新的控制器,但是我不确定这是否正确,或者不确定如何与已具有控制器的对象绑定另一个控制器。
我强烈建议您调查CanCanCan宝石(不再支持CanCan宝石的延续)。 这样,您的代码最终将看起来像这样(您没有发布任何代码,因此我必须对变量等进行假设):
<% if current_user.admin? %>
<% if can? :view_report, @customer %>
<!-- Render the report to this admin -->
<!-- ............................. -->
<% end %>
<% end %>
然后,您将在控制器中拥有类似的权限,以授予管理员查看用户报告的权限:
def handle_report
can [:show], Report, :user_id => user.id
if current_user.admin?
can :manage, :current_report
end
end
再次道歉,猜测这些变量。