我是 Ruby on Rails 的新手。我正在使用设计和 CanCan。我想创建用户组,以便他们在一个组中并能够拥有一个组长。组长只能从该组添加/编辑/删除用户。
我已经关注了http://edapx.com/2012/04/18/authorization-and-user-management-in-rails/我现在不知道如何创建组。可以在 CanCan 中做到这一点吗?
我是 Ruby on Rails 的新手。我正在使用设计和 CanCan。我想创建用户组,以便他们在一个组中并能够拥有一个组长。组长只能从该组添加/编辑/删除用户。
我已经关注了http://edapx.com/2012/04/18/authorization-and-user-management-in-rails/我现在不知道如何创建组。可以在 CanCan 中做到这一点吗?
看看这个答案是否可以帮助你:https ://stackoverflow.com/a/13747645/367611
基本上,你会有这样的东西:
class Ability
include CanCan::Ability
initialize(user)
can :manage, User, groups: {id: user.led_group_ids}
can :manage, Group, id: user.led_group_ids
end
end
然后在您的用户模型中,如下所示:
class User < ActiveRecord::Base
has_many :groups
def led_groups
@led_groups ||= groups.where(leader: true)
end
def led_group_ids
@led_group_ids ||= led_groups.collect(&:id)
end
end