Rails CanCan可以通过has_many提问:通过模型案例

时间:2012-12-26 19:05:17

标签: ruby-on-rails model-view-controller authorization cancan

在我的rails应用程序中,我的用户通过参与者拥有许多项目。

目前我正在使用CanCan进行授权。我做了一些研究,无法弄清楚如何做到以下几点。

在我的ability.rb文件中,我想提供:管理项目用户的能力。目前看起来像:

can :manage, Project if user.has_role? :silver

我的参与者表包含user_id和project_id。我如何仅通过参与者表格向与项目关联的用户提供这些管理功能?

1 个答案:

答案 0 :(得分:0)

我目前正在使用以下解决方案。我更喜欢使用原生设计或cancan的解决方案。

在模型中。

def is_participant?(participant)
  self.participants.exists?(:project_id => participant)
end

在我看来。

<% if current_user.is_participant?(@project.id) %>