在我的rails应用程序中,我的用户通过参与者有许多项目。
目前我正在使用CanCan进行授权。我做了一些研究,但不太清楚如何做到以下几点。
在我的能力范围内。我要提供的rb文件:管理项目上的用户的能力。现在看起来像:can :manage, Project if user.has_role? :silver
我的参与者表有user_id和project_id。如何仅向通过参与者表与项目关联的用户提供这些管理功能?
我目前使用以下作为解决方案。我更喜欢使用本地设计或cancan的解决方案。
在模型中。
def is_participant?(participant)
self.participants.exists?(:project_id => participant)
end
在我看来。
<% if current_user.is_participant?(@project.id) %>