1

PlayingFieldテーブルとテーブルの 2 つのテーブルがあり、クエリ パラメータをBookings受け取る Rails クエリを作成したいと考えています。Start_dateEnd_dateNumber_of_players

シナリオ: Start_date、End_date、および Number_of_players をメソッドに渡し、指定された日付の間に利用可能な (予約されていない) PlayingFields をすべて取得し、フィールドが必要な数のプレーヤーに対応できるようにしたいと考えています。

PlayingField has_many bookings
Booking belongs_to PlayingField

擬似コード:

@Fields = PlayingFields.where(bookings.end_date > start_date AND bookings.start_date > end_date AND PlayingFields.capacity >= number_of_players)

レール側でこれを行う最善の方法を教えてください。

PlayingFieldsレールを介してデータベースにクエリを実行して、それらの日付と必要なプレーヤー数の間で利用可能なすべてを取得するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

レールは、SQL 呼び出しの前に予約テーブルを含める必要があります。

PlayingFields.joins(:bookings).where(bookings.end_date > start_date AND bookings.start_date > end_date AND bookings.capacity >= number_of_players)

また、これら 2 つのオブジェクトがプログラムでどのように関連しているかにも興味があります。Booking モデルはどのようにして PlayingField に関連付けられますか?

于 2012-08-19T21:36:59.887 に答える