Ruby on rails 组合有很多:通过多态关联
在Rails(5.2)应用程序中,我有Ruby on rails 组合有很多:通过多态关联,ruby-on-rails,Ruby On Rails,在Rails(5.2)应用程序中,我有用户,组织,订阅,以及事件 用户s属于组织,并且用户s和组织都可以订阅事件 现在我需要一个用户通过其个人订阅和属于其组织的订阅获取相关事件 我正在尝试创建subscribable多态关联 订阅表包含以下字段: 身份证 事件id 可下标标识 下标型 但是现在我被卡住了,不知道如何设置用户、组织和订阅之间的关联 class User < ApplicationRecord end class Organization < Applicatio
用户
,组织
,订阅
,以及事件
用户
s属于组织
,并且用户
s和组织
都可以订阅事件
现在我需要一个用户
通过其个人订阅和属于其组织的订阅获取相关事件
我正在尝试创建subscribable
多态关联
订阅
表包含以下字段:
- 身份证
- 事件id
- 可下标标识
- 下标型
用户
、组织
和订阅
之间的关联
class User < ApplicationRecord
end
class Organization < ApplicationRecord
end
class Subscription < ApplicationRecord
belongs_to :subscribable, polymorphic: true
belongs_to :subscriber, polymorphic: true
end
class用户
用户
应该同时是subscribable
和subscriber
,但我不能让它工作
我应该如何设置
用户
模型中的关联?下面的代码应该做什么
class Subscription < ApplicationRecord
belongs_to :subscribable, polymorphic: true
belongs_to :event
end
class User < ApplicationRecord
has_many :subscriptions, as: :subscribable
has_many :events, through: :subscriptions
belongs_to :organization
end
class Organization < ApplicationRecord
has_many :subscriptions, as: :subscribable
has_many :events, through: :subscriptions
has_many :users
end
如果要调用用户组织的订阅和事件,则
用户应该同时是subscribable和subscriber,但我
不能让它工作
不确定您的意思,但如果想要获得订阅的订阅者,请在订阅
模型中添加关联,如下所示
class Subscription < ApplicationRecord
belongs_to :subscribable, polymorphic: true
belongs_to :event
has_many :subscribers, source: :user
end
类订阅
现在,
@subscription.subscribers
将提供订阅该订阅的用户列表。我认为你进展顺利,只需删除属于:subscriber,多态:true
和添加在用户和组织中都有许多关系。订阅也将有属于\u:event
。有\u多个:订阅
和有\u多个:事件,:通过=>:订阅
感谢您的回复。
@user.organization.events
@user.organization.subscriptions
class Subscription < ApplicationRecord
belongs_to :subscribable, polymorphic: true
belongs_to :event
has_many :subscribers, source: :user
end