Rails查询工作然后创建一个错误

时间:2014-10-10 22:14:24

标签: ruby-on-rails-4 rails-activerecord

我有一个查询来检索给定日期的所有可用点(时间)。

@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个...... 有人有个主意吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我不知道为什么这实际上有效,但确实如此,所以这可能对某人有所帮助:

@availablespots = Spot.where('id not in (?)',@takenspots.map(&:id))