gpt4 book ai didi

ruby-on-rails - 模型 -> has_many -> 两次

转载 作者:行者123 更新时间:2023-11-30 23:49:44 24 4
gpt4 key购买 nike

所以我在这里有一个有点令人困惑的关系,在 Note、Group 和 User 之间。我最终在我的模型中使用了 has_many 两次。但我目前专注于 Note & Group 关系。

背景:一个组可以有一个注释。用户也可以有注释。这就是为什么我的 Note 是多态的。但是,我还创建了一个名为 Tag 的连接模型,以便一个 Note 可以属于多个组。不过,在我的代码中,我最终得到了多个“has_many :notes”。在下面查看我的所有代码。做这样的事情的正确方法是什么?

提前致谢!

注意.rb

belongs_to :notable, :polymorphic => true
has_many :tags
has_many :groups, :through => :tags

用户名
has_many :notes, :as => :notable

组.rb
has_many :notes, :as => :notable
has_many :tags
has_many :notes, :through => :tags

标签文件
belongs_to :note
belongs_to :group

最佳答案

你只需要给它一个不同的名字。

class Group
has_many :notes, :as => :notable
has_many :tags
has_many :tagged_notes, :class_name => 'Note', :through => :tags
end

如果您只想要 :as => :notable 的单个注释部分(这在您的问题中不是很清楚),您可以这样做:
class Group
has_one :note, :as => :notable
has_many :tags
has_many :notes, :through => :tags
end

名称必须不同。虽然与 note对比 notes代码的其他部分的区别可能不是很清楚。

关于ruby-on-rails - 模型 -> has_many -> 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114260/

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