我有一个模型Report和ReportsController。有几十个动作。
我需要为每个角色的每个控制器操作设置权限。怎么实现这个?
在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)
范围