问题标签 [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 投票
2 回答
2336 浏览

ruby-on-rails - Arel 聚合、计数、外部连接?

我有一个Fact模型,它has_many :votes。投票也有一个user_id字段。我想在Fact模型的范围内表达以下内容:给我所有有 0 票且user_id等于 X的事实。

我对 Arel 不太熟悉,无法理解如何解决这个问题。想法?

0 投票
4 回答
17096 浏览

activerecord - 是否可以获得关联的 ActiveRecord::Relation 对象

  1. 关联方法,例如由定义has_manybelongs_to利用的方法ActiveRecord::Relation吗?

  2. 如果是这样,是否可以获得ActiveRecord::Relation正在使用的对象。

我们都知道 Rails 3在使用Query InterfaceActiveRecord::Relation创建查询时大量使用对象,并且Arel::Relation在后台使用对象。每当我们使用查询接口的,等方法时,都会返回一个对象。但是,在调用模型的关联方法时,情况似乎并非如此。相反,查询会立即执行,并返回关联模型的一个实例或实例数组。selectjoinsActiveRecord::Relation

考虑以下模型:

post.rb

user.rb

例子:

调用u.posts返回一个帖子数组,而不是ActiveRecord::Relation. 我想知道是否有可能获得协会正在使用的那个ActiveRecord::Relation,如果它正在被使用,也许是通过使用?Arel::Table

我想要的理由ActiveRecord::Relation应该很明显:这是因为我想链接现有的关联并操纵查询以适应不同的目的。

0 投票
3 回答
11433 浏览

ruby-on-rails - 如何覆盖:在 has_many 中定义的顺序

我有

我正在尝试查询按名称 DESC 排序的所有书籍

但结果是

结果以 ASC 排序的名称返回

有没有办法删除关联中的原始订单或覆盖它?还是在关系中指定顺序是个坏主意?

使用 Rails 3.0.3

0 投票
1 回答
632 浏览

activerecord - 为什么 Arel 查询返回为 ActiveRecord::Relation 类而不是父类?

我有一堂课:

在 Rails 控制台中,当我执行以下查询时:

这很重要,因为当我尝试访问类属性时出现无方法错误:

我究竟做错了什么?

0 投票
1 回答
429 浏览

ruby-on-rails-3 - 如何在自引用表上编写 AREL 语句

我已经写了很多 AREL 声明,但我对这个声明束手无策。这是我的情况:

我想检索具有与某个值匹配的标识符的子产品的所有产品。

我用这个把自己扭成椒盐卷饼,看起来很容易,但我已经看了太久了。我很感激任何帮助!

0 投票
2 回答
670 浏览

ruby-on-rails - Rails 3 和 Acl9:查找给定对象/角色的所有主题

我正在使用带有acl9的rails3进行授权。我正在尝试了解 ARel 和 rails 的查询方式。

我有一个属于Company的User ,并且该用户对Company具有给定的角色(acl9 提供管道)。如何从给定公司获取具有特定角色的所有用户?我想过滤 DB 中的结果,而不是在应用程序中过滤它们。

我想要这样的东西:

我知道 rails3 有一个 sql api,但我来自 Java/Grails 的地方,而且我使用的大多数 ORM 都有一些 ORM api(我想 datamapper 是这样工作的,但我使用的是普通的 rails3)。

0 投票
1 回答
382 浏览

sql - Sql 聚合计数 = 0

我在 Rails 3 应用程序中有以下模型,并选择要求:

class Item < AR
has_many :holdings

class Holding < AR
belongs_to :item

控股模型具有“活动”布尔值。

我希望找到每个拥有 0 个“活动”持有量的项目(它可能有任意数量的关联持有量),我尝试了很多组合。

SELECT * from items JOIN
(SELECT holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM holdings
WHERE holdings.active = "t"
GROUP BY holdings.item_id
HAVING hcount = 0)
ON items.id = holdings.item_id

但这只会返回大于 0 的计数。

谁能指出我正确的方向?

0 投票
5 回答
260742 浏览

ruby-on-rails - Rails where 条件使用 NOT NIL

使用 rails 3 样式我将如何编写相反的内容:

我想找到 id 不为零的地方。我试过:

但这会返回:

这绝对不是我需要的,而且几乎看起来像是 ARel 中的一个错误。

0 投票
2 回答
1246 浏览

ruby-on-rails - rails2 到 rails3 升级问题

我正在尝试将我的应用程序从 Rails 2.3.5 升级到 Rails 3.0.3。

型号:
Project.rb

项目角色.rb

project_roles 表列是 user_id、project_id、name
我遇到以下错误时遇到了困难,请提出建议。

谢谢。

问题出在 make_project_owner 回调中。create_calendar_for_project 运行良好。

我将 make_project_owner 更改为以下仍然出现相同的问题。

我尝试降级 rails:
rails 3.0.2 -> 有同样的问题
rails 3.0.1 -> has different error

0 投票
4 回答
6815 浏览

ruby-on-rails - Rails 3从连接返回所有列

我正在尝试加入两个表并返回所有列,而不仅仅是与模型关联的列。

我有类似的东西:

SQL 看起来不错,但它仍然只返回评论,没有任何与之关联的用户信息。

我怎样才能检索*而不仅仅是comments.*