Rails + Rolify Gem:为 table 中的所有用户分配 :admin 角色
Rails + Rolify Gem: Assigning an :admin role to ALL users in a table
我正在使用 Rolify gem (https://github.com/RolifyCommunity/rolify) 为我的网络应用程序的用户分配角色。
我从文档中了解到我可以这样做来为单个用户记录分配角色:
user = User.find(1)
user.add_role :admin
这很好,以及我对正在创建的新帐户所做的事情。但是,如何将 :admin
角色分配给我的用户 table 中的所有用户?
我尝试在我的 rails 控制台上玩这个,但没有任何运气。
假设您有 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
并且您的加入 table 是 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 }
我正在使用 Rolify gem (https://github.com/RolifyCommunity/rolify) 为我的网络应用程序的用户分配角色。
我从文档中了解到我可以这样做来为单个用户记录分配角色:
user = User.find(1)
user.add_role :admin
这很好,以及我对正在创建的新帐户所做的事情。但是,如何将 :admin
角色分配给我的用户 table 中的所有用户?
我尝试在我的 rails 控制台上玩这个,但没有任何运气。
假设您有 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
并且您的加入 table 是 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 }