通过连接表连接的Rails模型

时间:2009-06-26 17:02:33

标签: ruby-on-rails ruby activerecord

这可能吗?

在事件系统中,事件可以有多次。 (即,如果是3天的活动,每天都是在不同的时间)。每次都有一个与之相关的地方。最后,每个地方都有一个与之相关的地址。现在,我可以通过我的事件模型引用这些地址吗?

我在想这样的概念:

class Event < ActiveRecord::Base
    has_many :TimePlaces
    has_many :Places :through => :TimePlaces
    has_many :Addresses :through => :PlaceAddresses :through => :Places

1 个答案:

答案 0 :(得分:4)

这是正确的语法。

class Event < ActiveRecord::Base
    has_many :time_places
    has_many :places, :through => :time_places
    has_many :addresses, :through => :places

尽管这应该有用,但您可能需要重新设计数据库。运行具有太多联接的查询需要进行密集的数据库细化,并且会大大降低应用程序的速度。