问题标签 [arel]

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 投票
6 回答
83767 浏览

ruby-on-rails - 您如何在 Rails 3 中确定 ActiveRecord 关联的范围?

我有一个 Rails 3 项目。Rails 3 带来了 Arel 和重用一个范围来构建另一个范围的能力。我想知道在定义关系(例如“has_many”)时是否有使用范围的方法。

我有具有权限列的记录。我想构建一个将我的权限列考虑在内的 default_scope,以便过滤记录(即使是通过关系访问的记录)。

目前,在 Rails 3 中,default_scope(包括我找到的补丁)不提供传递 proc 的可行方法(我需要后期变量绑定)。是否可以定义一个可以传递命名范围的 has_many ?

重用命名范围的想法如下:

或者隐式编码关系中的命名范围如下所示:

我只是想将 default_scope 与后期绑定一起应用。我更喜欢使用 Arel 方法(如果有的话),但会使用任何可行的选项。

由于我指的是当前用户,因此我不能依赖在最后一刻未评估的条件,例如:

0 投票
1 回答
2349 浏览

ruby-on-rails - 你如何使用 ARel 的#as 方法?

如果您构建这样的投影:

您如何获得名为 :snark 的结果列?

0 投票
2 回答
2407 浏览

ruby-on-rails - 与 Arel (Rails 3) 的 Eager-loading 关联计数

简单的任务:假设一篇文章有​​很多评论,可以在一个长长的文章列表中显示每篇文章有多少评论。我正在尝试研究如何使用 Arel 预加载这些数据。

自述文件的“复杂聚合”部分似乎讨论了这种情况,但它并没有提供示例代码,也没有提供在两个查询而不是一个连接查询中执行此操作的方法,这对于表现。

鉴于以下情况:

我怎样才能为一篇文章预加载设置每个有多少评论?

0 投票
4 回答
16405 浏览

ruby-on-rails - Rails 3.0 中的 Arel 到底是什么?

我知道它是 ActiveRecord 的替代品,并且它使用对象而不是查询。

但...

为什么这更好?

对象/查询会“更容易”创建吗?

它会导致更高效的 SQL 查询吗?

它将与所有主要数据库兼容吗?- 我想它会的。

使用存储过程会更容易/更难吗?

0 投票
5 回答
15535 浏览

ruby-on-rails - Arel 中的嵌套查询

我试图在 Rails 3 中的 Arel 和/或 Active Record 中嵌套 SELECT 查询以生成以下 SQL 语句。

可以通过执行创建子查询的别名

但后来我被困在如何将它传递给父查询(没有调用#to_sql,这听起来很丑陋)。

您如何使用 SELECT 语句作为 Arel(或 Active Record)中的子查询来完成上述操作?也许有一种完全不同的方式来完成这个不使用嵌套查询的查询?

0 投票
3 回答
1956 浏览

ruby-on-rails - 使用 Rails 查询语言的复杂查询

我有一个用于统计目的的查询。它分解了已登录给定次数的用户数量。用户 has_many 安装和安装有一个 login_count。

是否有一些优雅的 ActiveRecord 样式find来获取相同的信息?理想情况下,作为登录名和用户的哈希集合:{ 2=>3, 6=>7, ...

我知道我可以直接使用 sql,但想知道如何在 rails 3 中解决这个问题。

0 投票
4 回答
1347 浏览

ruby-on-rails - 在 Rails 3 和 ActiveRelation 中发现

我正在尝试了解 Rails 3 中的新 arel 引擎,但我有一个问题。

我有两个模型,用户和任务

这是我暗示这种关系的路线:

这是我的任务控制器:

问题是,当我尝试调用新操作时出现以下错误:

我确定我的问题出在新的 arel 引擎上,有人知道我做错了什么吗?

对不起,这是我的 schema.db 文件:

0 投票
2 回答
1355 浏览

activerecord - rails:如何建立一个活动关系范围来遍历许多表?

我有这些表和关系:

我想建立一个允许我选择所有当前用户操作的范围,无论他们属于哪个项目或任务。

谢谢

0 投票
1 回答
749 浏览

ruby-on-rails-3 - Rails3:如何使用关系代数来替换 SQL 构造,如 NOT 和 OUTER JOIN

有两种模型 Post 和 Comment。我应该得到所有没有带有特定标签的评论的帖子。我怎样才能使用新的 Rails 3 特性来做到这一点,比如关系代数(arel)。

SQL 解决方案应该是这样的:

0 投票
3 回答
3906 浏览

ruby-on-rails - Arel:如何用 OR 干净地连接多个条件?

在我的 Rails 应用程序中,我循环遍历一个数组以创建一个必须由 OR 连接的条件列表。以下是我目前这样做的基本流程。

显然,它并不漂亮,但我仍然不完全了解我在 Arel 周围的方式。它是否提供了更好的方法来加入一组动态生成的条件?