【发布时间】:2017-05-11 06:29:20
【问题描述】:
老实说,我不确定标题应该是什么问题,所以我要实现的是,我有一个角色表,其中包含可以分配给管理员、所有者、卖方、购买者等用户的角色名称.
现在我要做的是在检查权限或分配角色时,我需要通过角色的名称获取角色的 id。假设我尝试将角色 admin(id 为 1)添加到用户,将在我的表 user_roles 中输入,然后它将是,user_roles.create(user_id: some_users_id, role_id: 1),
现在我没有做 role_id: 1,而是尝试做类似的事情 role_id: :admin。
网站中的所有内容都取决于角色和权限,因此我可以在某种会话或全局范围内保持相同。
我本可以将角色保留在模型中并从中创建枚举,但是角色是从数据库中读取的,因为管理员可以添加新角色。
我使用 Rails 5。
【问题讨论】:
-
role_id的值如何实时保存?您是否显示一个包含所有角色的选择框并从中选择 ID? -
@Pavan 分配时会有一个下拉菜单,但是我什么时候检查某人的角色呢。为了简单起见,我只是举了一个例子。
-
假设
role_id的数据类型是整数,那么你不能将角色的名字保存为role_id的值。您可能需要按照@SatishakumarAwati 的建议创建一个新列,并使用 Varchar 作为数据类型来存储角色名称。
标签: ruby-on-rails