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:哈哈。干杯,伙计。