0

予約システムを構築しようとしています。今まで、予約テーブルを作成し、このモデルを使用して空き状況を確認しました。

class Reservations < ActiveRecord::Base
# User_id 
# Room_id
# Start_date
# End_date
# Day (integer)
# isCanceled (false automatically)

belongs_to :user, :class_name => "Users", :foreign_key => "user_id"
belongs_to :room, :class_name => "Rooms", :foreign_key => "room_id"
end

ここで、毎日繰り返されるコースを取得して追加する「音楽レッスン」テーブルを追加したいと考えています。これは私のモデルです:

class Roomschedule < ActiveRecord::Base
# Name
# Start_date
# End_date
# Room_id 
# Day (integer)

belongs_to :room, :class_name => "Rooms", :foreign_key => "room_id"
end

Reservations コントローラーで、次の SQL クエリを使用してすべてのプログラムを表示します。

@all = Reservations.where("start_date > ?", Time.now.beginning_of_day).order("start_date ASC")

しかし、現在進行中のコースも確認して表示するために、 Reservations テーブルと Roomschedule テーブルをマージしたいと考えています。

何か提案はありますか?

ありがとう

4

1 に答える 1

1

内部結合が必要なようです:

@current_courses = Reservations.joins(:roomschedule).where("end_date < Time.now && start_date > Time.now").order("start_date ASC")

更新しました:

day_index = Date.today.strftime("%u") # or %w depending on your index
@todays_courses = Reservations.joins(:roomschedule).where(day: day_index).order("start_date ASC")
于 2013-07-25T17:16:21.007 に答える