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 回答