Ruby on rails Rails连接表或HABTM关联
在我正在构建的应用程序中,我希望有事件。然后,人们可以通过创建团队、直接注册活动(无团队)或加入现有团队来注册活动。我最初将其设置为事件有多个团队,团队有多个用户,用户属于团队和事件。但是,如果注册用户想要参加另一个活动(或参加另一个活动的团队),以及尝试在控制面板中列出@user.events或@user.teams之类的内容时,我会预见到问题。有人建议使用联接表并创建一个注册模型/迁移来联接这些表。我可以拥有属于事件、团队和用户的加入模型吗?我这样做完全错了吗?您可以创建一个连接模型注册,并将“属于”设置为多态,以便它可以引用任何类型的对象。下面是一个例子: models/team.rb:Ruby on rails Rails连接表或HABTM关联,ruby-on-rails,database,activerecord,associations,Ruby On Rails,Database,Activerecord,Associations,在我正在构建的应用程序中,我希望有事件。然后,人们可以通过创建团队、直接注册活动(无团队)或加入现有团队来注册活动。我最初将其设置为事件有多个团队,团队有多个用户,用户属于团队和事件。但是,如果注册用户想要参加另一个活动(或参加另一个活动的团队),以及尝试在控制面板中列出@user.events或@user.teams之类的内容时,我会预见到问题。有人建议使用联接表并创建一个注册模型/迁移来联接这些表。我可以拥有属于事件、团队和用户的加入模型吗?我这样做完全错了吗?您可以创建一个连接模型注册,并
class Team < ActiveRecord::Base
has_many :registrations, :as => :owner
end
现在,您可以查看注册情况,查看谁已注册参加您的活动。您可以使用has\u many:events、:through=>:registrations、:source=>:owner返回用户,但请注意,还有一些限制,如has\u many:owner、:through=>:registrations,这些限制在插件中解决,如
class User < ActiveRecord::Base
has_many :registrations, :as => :owner
end
class Registration < ActiveRecord::Base
belongs_to :owner, :polymorphic => true
end
class Event < ActiveRecord::Base
has_many :registrations
end
...
t.belongs_to :owner, :polymorphic => true
t.belongs_to :event
...