gpt4 book ai didi

ruby-on-rails - IN 子句使用事件记录查询库来创建整数列表

转载 作者:行者123 更新时间:2023-12-04 03:54:19 26 4
gpt4 key购买 nike

我正在尝试使用 ActiveRecord 复制一些 SQL 功能。我的问题与我使用 ruby​​ 连接方法有关(不要与 SQL 连接混淆)。这是我的代码:

scope :stats_tips_given, lambda { |date|
where("created_at >= ? AND tipper_id IN(?)",date, User.stats_users(date).collect(&:id).join(', '))
}

然而,生成的 sql 查询结果如下:SELECT "tip_events".* FROM "tip_events"WHERE (created_at >= '2011-04-14' AND tipper_id IN('4, 5, 11, 17, 22, 48, 54, 65, 88, 103, 147, 151, 181, 182, 189, 195, 190, 196, 202, 226, 227, 231, 243, 245, 232, 225, 212, 217, 220, 263, 265, 273, 281, 282, 284, 286, 293, 271, 299, 300, 309, 310, 312, 318, 321, 308, 303, 297, 333, 346, 362, 368, 377, 386, 389, 392, 353, 398, 427, 420, 434, 418, 454, 456, 477, 484, 480, 453, 450, 452, 458, 497, 498, 503, 510, 511, 515, 522, 529, 537, 540, 508, 499, 524, 521, 502, 542, 546, 548, 557, 559, 571, 575, 576, 581, 587, 562, 580, 544, 567, 565, 573, 577, 597, 606, 619, 620, 640, 636, 607, 603, 600, 596, 656, 657, 668, 676, 683, 685, 662, 677, 669, 689, 678, 690, 694, 514, 206, 304, 601, 63, 495, 150, 344, 691, 490, 545, 634, 222, 288, 534, 630, 569, 323, 697, 489, 394, 568, 661, 672, 130, 381, 590, 205, 527, 474, 184, 622'))

如果数字列表周围没有单引号,这个查询就没问题。我该如何纠正这个问题?

最佳答案

您正在使用 join 形成一个字符串。只需将实际数组传递给它即可:

User.stats_users(date).collect(&:id)

代替:

User.stats_users(date).collect(&:id).join(', ')

关于ruby-on-rails - IN 子句使用事件记录查询库来创建整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com