2014-01-15 88 views
0

我瞭解CanCan的基本工作原理,並試圖遵循一些教程,但他們都沒有真正討論如何在我的應用程序中分配用戶角色。其他用戶設置的設計和CanCan角色? (Rails 4.0)

此外,我希望我的應用程序允許用戶將角色分配給其他用戶。例如,我的用戶可以創建項目,並將其他用戶分配給項目團隊。我目前正在使用角色模型來保存我的用戶角色。

如何讓用戶專門設置另一個用戶爲項目團隊角色,他們可以在哪裏管理項目?

+0

看看http://stackoverflow.com/questions/21071693/how-to-get-devise-to-work-with-multiple-models-or-roles-preferably-with-cancan/21072344 #21072344,這應該回答你的大部分問題 – Danny

回答

2

您可以使用一個模型,像can_manage_projects

class User < ActiveRecord::Base 

    has_many :roles 

    field :can_manage_projects, type: boolean 
end 

而且你的能力,你設定一個權限記者現場...

class Ability 
    def initialize(user) 
    can :manage Project if user.can_manage_project? 
    end 
end 

所以,你可以使用許可時你想要做的事情如:

class ProjectController 

    def assign_user(project, user) 
    project.users << user if can? :manage, Project 
    end 
end 

<body> 
    <% if can? :manage, Project %> 
    <%= link_to 'Assign selected user to Project', assign_user_project_path(project, user) %> 
    <% end %> 
</body>