我正在使用Rolify gem(https://github.com/RolifyCommunity/rolify)为我的网络应用的用户分配角色。
我从文档中了解到,我可以将此角色分配给单个用户记录:
user = User.find(1)
user.add_role :admin
哪个好,以及我正在使用正在创建的新帐户。但是,如何将:admin
角色分配给我的用户表中的所有用户?
我尝试在我的rails控制台中玩这个,但没有任何运气。
答案 0 :(得分:1)
假设您有users
#= select * from users;
id | name | created_at | updated_at
----+----------+----------------------------+----------------------------
1 | Kristján | 2015-06-05 04:47:58.037205 | 2015-06-05 04:47:58.037205
和roles
#= select * from roles;
id | name | resource_id | resource_type | created_at | updated_at
----+-------+-------------+---------------+----------------------------+----------------------------
1 | admin | ∅ | ∅ | 2015-06-05 04:50:27.015613 | 2015-06-05 04:50:27.015613
,您的联接表格为users_roles
#= \d users_roles
Table "public.users_roles"
Column | Type | Modifiers
---------+---------+-----------
user_id | integer |
role_id | integer |
您可以为
的每个用户插入admin
个角色
#= insert into users_roles select id, 1 from users;
或者如果您更喜欢从Rails控制台执行此操作(并且有耐心,如果有大量记录):
User.find_each { |user| user.add_role :admin }