2016-04-06 44 views
-2

我有一個MovieSession有很多票的has_many有多個表

class MovieSession < ActiveRecord::Base 
has_many :tickets 
end 

belongs_to的一房一票,並有許多預定

class Ticket < ActiveRecord::Base 
has_many :bookings 
belongs_to :room 
end 

訂房像座椅和票務

class Booking < ActiveRecord::Base 
belongs_to :ticket 
belongs_to :seat 
end 
之間的連接表

如果我獲得所有預訂座位,可以使用導軌。像下面一樣?

class MovieSession < ActiveRecord::Base 
has_many :seats, through :ticket and booking 
end 
+0

這些模型似乎並不能準確地代表您的問題。花點時間檢查關係是否都在雙方定義。 – Matt

回答

1

如果您想要獲得電影的所有座位,您需要轉到座位模型並添加連接相應表的範圍。例如:

class Seat < ActiveRecord::Base 
    belongs_to :booking 

    scope :by_movie, -> (_movie) { joins(:booking => {:ticket => :movie}).where(movie: _movie) }