gpt4 book ai didi

ruby-on-rails - 如何在 Neo4j.rb 中定义这些所有者/成员关系?

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:31 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何在我的 Neo4j.rb Active::Node 模型中定义这些所有者/成员关系。

  • 用户可以创建多个团队(并成为这些团队的“所有者”)
  • 用户可以获取他们创建的团队
  • 团队有一个所有者(用户)和许多成员(其他用户)
  • 所有者可以将其他用户添加为团队成员
  • 用户可以获取他们是所有者或成员的所有团队

到目前为止我有这样的东西,但它不能正常工作,我完全迷路了。

class User
include Neo4j::ActiveNode
has_many :out, :my_teams, model_class: 'Team'
end

class Team
include Neo4j::ActiveNode
property :name, type: String
has_one :in, :owner, model_class: 'User'
end

user = create(:user)
team = build(:team)
user.my_teams << team
expect(team.owner).to eq user

最佳答案

首先,您应该确保您使用的是昨天刚刚发布的 5.0.0 gems(耶!)

其次(升级时应该会收到有关此的错误消息),您应该为关联指定一个type 选项,如下所示:

class User
include Neo4j::ActiveNode
has_many :out, :my_teams, type: :OWNS_TEAM, model_class: 'Team'
end

这告诉 ActiveNode 哪些关系类型用于创建和查询。

最后,为了创建,您可以像这样在模型类上使用类方法:

user = User.create
team = Team.create

user.my_teams << team

在一个有点挑剔的个人笔记中,我还建议使用 teamsowned_teams 的关联名称,因为它会创建用于从用户那里获取这些团队的方法对象。

关于ruby-on-rails - 如何在 Neo4j.rb 中定义这些所有者/成员关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946408/

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