我正在尝试建立预订系统。到目前为止,我做了预订表,并使用此模型检查可用性:
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
现在我想添加一个&#34;音乐课程&#34;用于获取和添加每天重复的课程的表。这是我的模特:
class Roomschedule < ActiveRecord::Base
# Name
# Start_date
# End_date
# Room_id
# Day (integer)
belongs_to :room, :class_name => "Rooms", :foreign_key => "room_id"
end
在我的预约控制器中,我使用此SQL查询显示所有程序:
@all = Reservations.where("start_date > ?", Time.now.beginning_of_day).order("start_date ASC")
但我想将预订表与Roomschedule表合并,以便检查并显示当前正在进行的课程。
你有什么建议吗?
由于
答案 0 :(得分: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")