CanCanCan:如何为每个方法设置权限

问题描述 投票:0回答:1

我有一个模型Report和ReportsController。有几十个动作。

我需要为每个角色的每个控制器操作设置权限。怎么实现这个?

ruby-on-rails ruby cancancan
1个回答
2
投票

ability.rb你可以拥有

if user.has_role?(:foo)
  can :some_custom_action, Report
end

if user.has_role?(:bar)
  can([:some_other_custom_action, :even_more_action], Report)
end

authorize_resource将检查,或更多的控制,你可以在authorize!(action_name.to_sym, @report || Report)中调用before_action

也将行动传递给accessible_by(current_ability, action_name.to_sym)范围

© www.soinside.com 2019 - 2024. All rights reserved.