2013-07-25 43 views
0

我正在嘗試構建預訂系統。到現在爲止,我做了預約表,並檢查使用此模型的可用性:關於在軌道上遷移並使用2個表格的意見4

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 

在我的預訂控制器,I顯示使用這個sql查詢我所有的計劃:

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

但我想合併預訂表Roomschedule表,同時檢查,並顯示當前正在進行的課程。

你有什麼建議嗎?

由於

回答

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") 
+0

在Roomschedule模型,日是從0到6的整數,作爲平日的索引。我如何讓房間計劃每週重複一次?例如,在第0天(星期一),在start_date和end_date間隔之間會有一個工作室會話。我希望它每週重複一次。 – Yagiz

+0

更新了我的答案。那是你在找什麼? – kwyoung11

+0

感謝您的快速回復。實際上,我不想要今天的課程,而是希望包括在與預訂相同的表格中的課程 – Yagiz