2012-12-27 2 views
1

I 모델 다음 (유일하게 중요한 세부 사항을 포함) 한 Courts이 있고 그 시간은 어떤 Users에 의해 reserved 할 수있는 CourtTimeSlots로 분할된다.
어떻게 그러한 관계를 설정합니까? User의 숫자는 CourtTimeSlots이어야합니다 : Reservation?레일 모델 관계 : 통해 - 더 많거나 적은 아래에 설명 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