2016-04-06 10 views
-2

私はMovieSessionが部屋belongs_toの多くのチケットにhas_many

class MovieSession < ActiveRecord::Base 
has_many :tickets 
end 

チケットを持っており、座席やチケット

class Booking < ActiveRecord::Base 
belongs_to :ticket 
belongs_to :seat 
end 
間の結合テーブルのような多くの予約

class Ticket < ActiveRecord::Base 
has_many :bookings 
belongs_to :room 
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) }