gpt4 book ai didi

ruby-on-rails - 具有关联类型字段的 ActiveRecord 多对多表 - Rails

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:20 25 4
gpt4 key购买 nike

我正在构建一个 Rails 照片库应用程序,它允许用户创建私有(private)画廊并邀请用户在不同的权限下(即:查看者和编辑者)进入画廊。

我认为需要 galleries_users 表来解决多对多关系:

user_id | gallery_id
--------------------
1 | 4
--------------------
2 | 4

但是我应该存储关联权限类型吗?我可以只添加一个 permission 字段吗:

user_id | gallery_id | permission
---------------------------------
1 | 4 | edit
---------------------------------
2 | 4 | view

这是在正确的 rails 上吗?

我也看到了 Rolify gem,但使用它意味着将用户添加到图库(通过上述方法)并通过 Rolify 的界面单独添加角色。除非有一种方法可以跳过将用户添加到图库并将角色视为关联的第一步吗?

最佳答案

我认为您可以尝试使用一对多关系,而不是使用多对多关系。话虽如此,我的意思是将所有者和画廊的关系分开,即不要将画廊所有者与受邀用户混合,因为这可能会在未来的实现中产生问题,并尝试在另一个表中维护 invited_users。

1) Owner-gallery -> 一对多关系

表 1:用户

表 2:图库

2) 受邀用户:

表 3:invited_users

您可以使用 gallery_id、view_permission_user_ids_arr、edit_permission_user_ids_arr 等列创建此表。

因此,对于每个图库,您都可以轻松获得具有查看/编辑权限的用户 ID 数组。

希望对你有帮助。

关于ruby-on-rails - 具有关联类型字段的 ActiveRecord 多对多表 - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39546584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com