我有一个查询来检索给定日期的所有可用点(时间)。
@takenspots = Spot.joins(:reservations).where('reservations.date = ?', params[:date])
if @takenspots.any?
@availablespots = Spot.where('id != ?', @takenspots.map)
我使用@availablespots来填充select_list。
我每天有4个不同的点,查询只能工作2次。 (2/4点)
如果试图预订一天我从4中取出2个点,它会说:
SQLite3::SQLException: near ",": syntax error: SELECT "spots".* FROM "spots" WHERE (id != 1,2)
但我无法理解为什么它适用于前2个点而不是剩下的2个...... 有人有个主意吗?
谢谢,
答案 0 :(得分:0)
我不知道为什么这实际上有效,但确实如此,所以这可能对某人有所帮助:
@availablespots = Spot.where('id not in (?)',@takenspots.map(&:id))