gpt4 book ai didi

ruby-on-rails-3 - HABTM 多态关系

转载 作者:行者123 更新时间:2023-12-03 10:20:36 24 4
gpt4 key购买 nike

我对 Rails 很陌生,我正在尝试建立一个多态的 HABTM 关系。问题是我想要关联三个模型。

第一个是事件模型,然后是两种参与者:用户和联系人。

我想要做的是能够将用户和联系人作为与会者联系起来。所以,我现在在我的代码中是:

事件模型

has_and_belongs_to_many :attendees, :polymorphic => true

用户模型
has_and_belongs_to_many :events, :as => :attendees

联系方式
has_and_belongs_to_may :events, :as => :attendees
  • HABTM表迁移需要怎么做?我有点困惑,我没有找到任何帮助。
  • 它会起作用吗?
  • 最佳答案

    不,你不能那样做,没有多态 has_and_belongs_to_many 关联这样的东西。

    您可以做的是创建一个中间模型。它可能是这样的:

    class Subscription < ActiveRecord::Base
    belongs_to :attendee, :polymorphic => true
    belongs_to :event
    end

    class Event < ActiveRecord::Base
    has_many :subscriptions
    end

    class User < ActiveRecord::Base
    has_many :subscriptions, :as => :attendee
    has_many :events, :through => :subscriptions
    end

    class Contact < ActiveRecord::Base
    has_many :subscriptions, :as => :attendee
    has_many :events, :through => :subscriptions
    end

    这样,订阅模型的行为就像 N:N 关系中的链接表,但允许您对事件具有多态行为。

    关于ruby-on-rails-3 - HABTM 多态关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964678/

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