2012-12-27 45 views
1

我有以下模型(只包括主要细节),其中有Courts和他们的时间被分成CourtTimeSlots其可以是reserved通过任何Users - 下面或多或少说明。
我该如何建立这种关系? User应该有多少CourtTimeSlots:通过ReservationRails的模型的关系:通过与:的has_many

目的是为了能够获得所有预订并从那里显示UserCourt信息。

class User < ActiveRecord::Base 
end 

class Reservation < ActiveRecord::Base 
    ??? 
end 

class Court < ActiveRecord::Base 
    attr_accessible :court_number 
    has_many :court_sessions 
end 

class CourtTimeSlot < ActiveRecord::Base 
    attr_accessible :start_time, :end_time, :status 
end 

回答

2

我明白了。在这种情况下,以下内容可能会实现您的目标,说明如何通过预订访问您要查找的数据。

class Reservation < ActiveRecord::Base 
    belongs_to :time_slot 
    belongs_to :user 
end 

class User < ActiveRecord::Base 
    has_many :reservations 
end 

class CourtTimeSlot < ActiveRecord::Base 
    has_one :reservation 
    belongs_to :court 
end 

class Court < ActiveRecord::Base 
    has_many :court_time_slots 
end 

Reservations.all.each do |r| 
    r.user 
    r.time_slot.court.court_name 
end 
+0

谢谢。我正在考虑朝这个方向发展,但User/CourtTimeSlot之间的紧密联系听起来不对。 CourtTimeSlot是严格属于法院的东西。预订意味着用户和CourtTimeSlot之间的连接/所有权松散。 – ESoft

相关问题