首页 - 技术 - 共享项目 Rails 数据库架构

共享项目 Rails 数据库架构

2023-10-02 16:53
| 我正在尝试设置共享项目。如何使用 Postgresql 在 Rails 中执行此操作? 目前,用户有 has_many 项目。我希望用户能够与其他用户共享项目,但仍然拥有这些项目。因此,用户有 has_many 项目,项目有 has_many 用户。我无法执行 has_and_belongs_to_many 因为我希望项目的所有者拥有与共享用户不同的权限。我将如何建立关系?项目是否应该有一个以某种方式指向用户的shared_id? 编辑:这有效
#user.rb
has_many:物品
has_many :分享
has_many :shared_items, :foreign_key => \"item_id\", :through => :sharrings, :source => :item

#用户.rb
属于:用户
has_many :分享
has_many :shared_users, :foreign_key => \"user_id\", :through => :sharrings, :source => :user

#分享.rb
属于:共享用户
属于:项目


# 创建共享
@www.gsm-guard.net :user_id => other_www.gsm-guard.net

# 获取与该用户共享的项目
@shared_items = current_user.shared_items
​​