2016-04-06 5 views
-2

ich ein MovieSession haben hat viel Tickethas_many mit mehreren Tabellen

class MovieSession < ActiveRecord::Base 
has_many :tickets 
end 

ein Ticket belongs_to ein Zimmer und hat viele Buchungen

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

Buchung wie eine Join-Tabelle zwischen Sitz und Ticket

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

In Schienen ist es möglich, wenn ich alle Plätze gebucht bekomme. Wie unten?

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

Diese Modelle scheinen nicht genau Ihre Frage zu vertreten. Nehmen Sie sich einen Moment Zeit, um zu überprüfen, ob die Beziehungen auf beiden Seiten definiert sind. – Matt

Antwort

1

Wenn Sie alle Sitze für einen Film bekommen wollen, möchten Sie mit dem Sitzmodell gehen und einen Rahmen hinzufügen, die die entsprechenden Tabellen verknüpft. Etwas wie:

class Seat < ActiveRecord::Base 
    belongs_to :booking 

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