问题标签 [squeel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
282 浏览

ruby - Squeel 在 Where 块中使用 OR 遍历数组

我在 Squeel 中有以下查询:

哪个工作得很好,但我想知道是否有一种方法可以遍历具有这些值的数组以更容易添加和删除语言。假设我创建了数组:

有没有办法在 Where 块中使用 Squeel 进行迭代?

我已经尝试了我能想到的一切,但没有成功。

谢谢。

0 投票
3 回答
174 浏览

ruby-on-rails - 具有块和 if 子句的单行 ruby​​ 句子中的奇怪行为

我不知道为什么这两段代码在 Ruby 1.8.7 中表现不同,因为其中一段似乎是另一段的单行版本。

第一段代码(它应该可以正常工作):

单行版本(它根本不起作用,没有错误但似乎也没有执行):

注意:我使用的是 squeel gem,这就是块遵循 where 方法的原因。此外,变量类型必须捕获实例变量@type,因为块内的执行上下文会发生变化,并且实例变量不会在主上下文和块上下文之间共享。

注意 2:出于遗留原因,我必须使用 Ruby 1.8.7。

任何想法?谢谢!

0 投票
3 回答
4205 浏览

ruby-on-rails - 您将如何使用 Squeel 执行此 Rails 子查询?

我想使用 Squeel 重构下面的查询。我想这样做,以便我可以将其中的运算符链接起来,并在查询的不同部分重新使用逻辑。

查询必须全部在数据库中运行,并且不应该是混合 Ruby 解决方案,因为它必须对数百万条记录进行排序和切片。

我已经设置了问题,以便它应该针对普通user桌子运行,这样您就可以使用它的替代方案。

可接受答案的限制

  • 查询应该返回一个User具有所有正常属性的对象
  • 每个用户对象还应包括extra_metric_we_care_about,age_in_secondscompound_computed_metric
  • 查询不应该通过在多个地方打印出一个字符串来重复任何逻辑 - 我想避免两次做同样的事情
  • [更新]查询应该在数据库中都可以执行,以便在返回 Rails 之前可以在数据库中对可能包含数百万条记录的结果集进行排序和切片
  • [更新] 该解决方案应该适用于 Postgres 数据库

我想要的解决方案类型示例

下面的解决方案不起作用,但它显示了我希望达到的优雅类型

您应该能够针对您现有的数据库运行它

请注意,我有些人为地设计了这个问题,以便您可以使用现有的User课程并在控制台中使用它。

编辑

  1. 我使用的数据库是 Postgres。
  2. 我不确定我是否 100% 清楚地表明查询应该全部在数据库中执行。如果某些逻辑本质上是在 Rails 中完成的,那么这不能是一个混合的答案。这很重要,因为我希望能够使用计算列对数百万条记录进行排序和切片。
0 投票
0 回答
127 浏览

ruby-on-rails - 如何使用 Squeel/ActiveRecord 来表达这个 SQL 子查询?

我今天有点脑筋急转弯,不知道应该如何使用 ActiveRecord/Squeel/ARel 正确表达这个 SQL 查询:

有任何想法吗?

背景:DomainName 模型具有多态所有者以及允许所有者拥有许多不同类型的域名的“关键”字段。上面的查询获取每个唯一元组的最新域名[owner_type, owner_id, key]

编辑:

这是使用 JOIN 的相同查询:

0 投票
0 回答
292 浏览

ruby-on-rails - Squeel 加入后选择不同的记录

我有一个与小部件有 has_many 关系的模型,我正在尝试检索拥有小部件的用户的唯一列表(有些有超过 1 个小部件)。

问题是#uniq似乎没有检索到一组唯一的用户记录。

我可以表演

要检索一组唯一的用户 ID,但必须有可能只找到适合此查询的唯一用户?

0 投票
1 回答
103 浏览

postgresql - 按日期获取和统计记录

我必须进行查询以获取所有记录,然后created_at按时区中的日期计算所有记录:

created_attimestamp在 PostgreSQL 中以 UTC 格式存储,但my_date在 Rails 的应用程序时区中是日期。

如何以正确的方式完成,不会因为时区转换而造成损失,并且应该created_at首先转换为 Date ?

0 投票
0 回答
92 浏览

ruby-on-rails - ActiveRecord,Squeel:获取没有父关联的对象

我有:

我想得到Thing没有任何ThingsCollections(thing.things_colllection_ids.empty? == true)的s。我怎样才能通过 ActiveRecord & Squeel 做到这一点?(如果可能,不使用 SQL 查询)

0 投票
1 回答
460 浏览

sql - ActiveRecord 使用数组数组作为参数

我想形成以下查询:

我对该函数的输入将是一个嵌套数组[id, zone_id],例如:

[[87, 457], [88, 457]]

我尝试了一个在squeel gem 网站上看到的小技巧

但它不喜欢将嵌套数组作为参数。

我想出的解决方案只是编译一个 SQL 字符串,但不使用准备好的语句的任何参数清理:

我觉得 squeel 可能有一个答案,但如果有一个纯粹的 ActiveRecord 答案,我也可以尝试一下。

  • 导轨 3.2.13
  • 红宝石 1.9.3-p392
0 投票
5 回答
579 浏览

sql - 优化困难查询(可能使用 squeel)

有这样的代码(使用 PublicActivity gem & Squeel)

但它会创建8个 SQL 请求:

  1. 活动请求未加入
  2. 一些用户(帖子所有者和项目所有者)被加载两次
  3. 一些项目被加载两次
  4. @activities 是数组。Rails 关系合并方法(除了+)不适用于上面的代码。

有什么优化它的想法吗?

0 投票
0 回答
338 浏览

ruby-on-rails - 对嵌套的 has_many 进行排序:通过关联计数

我正在尝试按标签与特定组用户的关联频率的降序对标签进行排序。(ActiveRecord & Rails 3.2 - 如果有帮助,我也安装了 Squeel!)

用户有标签,群组有用户。因此,组通过用户具有标签。

Steve [ https://stackoverflow.com/a/11624005/59195 ] 和 Amol [ https://stackoverflow.com/a/10958311/59195 ]的这些答案最接近我想要做的事情——尽管我想要根据作为组成员的用户而不是所有用户的使用/关联频率对标签进行排序。

有任何想法吗?谢谢您的帮助!