Rails + Rolify Gem:为表

时间:2015-06-05 04:36:11

标签: ruby-on-rails ruby-on-rails-4 rolify

我正在使用Rolify gem(https://github.com/RolifyCommunity/rolify)为我的网络应用的用户分配角色。

我从文档中了解到,我可以将此角色分配给单个用户记录:

user = User.find(1)
user.add_role :admin

哪个好,以及我正在使用正在创建的新帐户。但是,如何将:admin角色分配给我的用户表中的所有用户?

我尝试在我的rails控制台中玩这个,但没有任何运气。

1 个答案:

答案 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 }