Ruby on rails RubyonRails(控制台):Collection.where()返回带有多个条件的ArgumentError

Ruby on rails RubyonRails(控制台):Collection.where()返回带有多个条件的ArgumentError,ruby-on-rails,ruby,rails-console,Ruby On Rails,Ruby,Rails Console,我有一个数据库,在那里我试图找到一定范围内的数据,并满足一定的标准。我正在使用以下命令: GameSlot.where("s = ? and st >= :start_date and et <= :end_date", 5, {start_date: '2016-01-01', end_date: '2017-01-01'}) GameSlot.where(“s=?和st>=:start\u date和et应该更像这样,我认为: GameSlot.where(["s = :s a

我有一个数据库,在那里我试图找到一定范围内的数据,并满足一定的标准。我正在使用以下命令:

GameSlot.where("s = ? and st >= :start_date and et <= :end_date", 5, {start_date: '2016-01-01', end_date: '2017-01-01'})

GameSlot.where(“s=?和st>=:start\u date和et应该更像这样,我认为:

GameSlot.where(["s = :s and st >= :start_date and et <= :end_date", 
                s: 5, 
                start_date: '2016-01-01', 
                end_date: '2017-01-01'])

GameSlot.where([“s=:s和st>=:start\u date和et应该更像这样,我认为:

GameSlot.where(["s = :s and st >= :start_date and et <= :end_date", 
                s: 5, 
                start_date: '2016-01-01', 
                end_date: '2017-01-01'])

GameSlot.where([“s=:s和st>=:start\u date和et我想你在找这样的东西:

GameSlot.where("s = ? and st >= ? and et <= ?", 5, '2016-01-01', '2017-01-01')

GameSlot.where(“s=?和st>=?和et我猜你在寻找这样的东西:

GameSlot.where("s = ? and st >= ? and et <= ?", 5, '2016-01-01', '2017-01-01')

(S:=和St==)和Et

(作为一种替代方法),你可以考虑类方法(或范围,如果你喜欢这样的事情)。

class GameSlot < ActiveRecord::Base

  class << self

    def s(val)                        where(s: val)             end
    def starting_on_or_after(date)    where('st >= ?', date)    end
    def ending_on_or_before(date)     where('et <= ?', date)    end

  end

end
这样,您就可以将查询逻辑保留在
GameSlot
模型中,在我看来,该模型封装得更好一些


作为一种替代方法,你可以考虑类方法(或范围,如果你喜欢这样的事情)。
class GameSlot < ActiveRecord::Base

  class << self

    def s(val)                        where(s: val)             end
    def starting_on_or_after(date)    where('st >= ?', date)    end
    def ending_on_or_before(date)     where('et <= ?', date)    end

  end

end
这样,您就可以将查询逻辑保留在
GameSlot
模型中,在我看来,该模型封装得更好一些



需要仔细研究的东西。

应该是一个数组,我想。@SergioTulentsev我读了你发布的链接,看起来是这样,但我一直这样做,效果很好。我还仔细检查了。如果我的rails版本是3.2.21,这还能用吗?@DeeWBee是的,应该。检查导轨3.2。我想应该是一个数组。@SergioTulentsev我想阅读你发布的链接,看起来是这样的,但我一直这样做,效果很好。我还仔细检查了。如果我的rails版本是3.2.21,它还能工作吗?@DeeWBee是的,应该可以。检查导轨3.2。如果我的rails版本是3.2.21,它还能工作吗?@DeeWBee:我不知道,试试。如果我的rails版本是3.2.21,它能工作吗@DeeWBee:我不知道,试试看。如果我的rails版本是3.2.21,它还能用吗?应该是
类“如果你喜欢那样的东西”-告诉我,你真的更喜欢它而不是范围吗?我很难相信:)@SergioTulentsev:相信我,我相信这是我最小的罪恶。@jvillian:哈哈。干杯,伙计。如果我的rails版本是3.2.21,它还能用吗?应该是
类“如果你喜欢那种东西”-告诉我,你真的更喜欢它而不是示波器吗?我觉得很难相信:)@塞吉奥图兰采夫:相信我,我相信这是我最小的罪过。@jvillian:哈哈。干杯,伙计。