我有一个模型Report和ReportsController。 有几十个动作。
我需要为每个角色的每个contoller操作设置权限。 如何实现呢?
答案 0 :(得分: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)
范围