has_many 有多个 table

has_many with multiple table

我有一个 MovieSession 有很多票

class MovieSession < ActiveRecord::Base
has_many :tickets
end

一张票belongs_to一个房间并且有很多预订

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

像座位和机票之间的连接一样预订table

class Booking < ActiveRecord::Base
belongs_to :ticket
belongs_to :seat
end

在rails如果我得到所有预订的座位是可能的。像下面这样?

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

如果你想获得电影的所有座位,你想转到座位模型并添加一个连接适当表的范围。类似于:

class Seat < ActiveRecord::Base
  belongs_to :booking

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