【问题标题】:Rails query works then creates an errorRails 查询有效,然后产生错误
【发布时间】:2014-10-10 22:14:23
【问题描述】:

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

@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 个位置... 有人有想法吗?

谢谢,

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • OP 的问题是“我不明白为什么它适用于前 2 个位置而不是剩下的 2 个位置......有人有想法”。所以你的回答应该解释为什么事情没有按预期工作。
    • 我不知道为什么它实际上可以工作,但现在可以了。所以我没有把它作为答案,但它可能会对某人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多