2009-06-26 40 views
0

這可能嗎?通過連接表加入的Rails模型

在事件系統中,事件可以有多次。 (即,如果是3天的事件,並且每天都在不同的時間)。每次都有一個與之相關的地方。最後,每個地方都有一個與之相關的地址。現在,我可以通過我的事件模型引用這些地址嗎?

我概念思維是這樣的:

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

回答

4

這是正確的語法。

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

儘管這應該工作,您可能需要重新設計您的數據庫。運行包含太多連接的查詢需要密集的數據庫細化,並大幅降低應用程序的速度。

+0

我更喜歡你的想法,限制我的加入。我應該有一個更有效的方式來做到這一點,我會找到這樣的方式。 – kd7iwp 2009-06-26 18:51:35