问题标签 [active-relation]

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 投票
14 回答
84986 浏览

ruby-on-rails - ActiveRecord 查询联合

我用 Ruby on Rail 的查询界面编写了几个复杂的查询(至少对我来说):

这两个查询本身都可以正常工作。两者都返回 Post 对象。我想将这些帖子合并到一个 ActiveRelation 中。由于在某个时候可能有数十万个帖子,这需要在数据库级别完成。如果是 MySQL 查询,我可以简单地使用UNION操作符。有人知道我是否可以用 RoR 的查询界面做类似的事情吗?

0 投票
1 回答
208 浏览

ruby-on-rails-3 - 在 Rails 3.x 中通过中间模型链接两个模型

我想我还不知道正确的术语,因此很难找到正确的答案。

所以,我创建了一个带有 Exhibit 和 Category 的引擎。我创建了第三个模型分类,以便将展览分配给多个类别。这只有exhibition_id 和category_id。

我想做的是为每个类别创建一个页面,因此我将一个展览分配给新闻类别,将其显示在“新闻”页面中,何时将其分配给照片类别以将其显示在“照片”页面等。我猜这是一个路由配置,但我还没有到那里(但是,如果它确实是一个路由配置,请告诉我)

我的问题是如何仅从一个控制器中检索来自不同模型的字段。是)我有的:

我如何检索:foto属于Exhibit:category =>"News"

我尝试添加模型并且我可以检索但我如何将它scope :news, where(['category_id="1"'])与这个展览的照片连接起来(我猜这是)?CategorizationCategorization.newsCategorization.exhibit_idExhibit.foto

我不知道从哪里开始...

谢谢你们...

佩特罗斯

0 投票
2 回答
206 浏览

ruby-on-rails - Rails:如何对带有评论的消息进行排序?

消息可以有多个评论:

以下命名范围返回在给定时间范围内创建的消息,按创建时间排序(最新的在前):

我如何编写一个命名范围来返回具有在给定时间范围内创建的帖子(消息本身或其评论之一)的消息,按最新帖子的创建时间排序(最新的在前)?

例子:

如果存在以下消息:

然后

应该返回:

Message 3不包括在内,因为它的帖子是在 2010 年 2 月之前创建 的。Message 2首先是因为它有最新的帖子(2011 年 8 月)。

0 投票
2 回答
526 浏览

ruby-on-rails - 主动关系:通过关联检索记录?

我有以下型号:

目标是能够@user.survey_takings.last_survey_taken从控制器调用。(这是人为的,但顺其自然;总的目标是能够调用@user.survey_takings可以使用相关调查上的关系的类方法。)

在当前形式下,此代码将不起作用;surveys_taken当我调用.map(&:survey). 有没有办法为所有加入的调查返回关系?我不能这样做:

因为@user.survey_takings.surveys_taken将加入所有已完成的调查问卷,而不仅仅是已完成的问卷调查@user

我想我想要的是相当于

但我无法从SurveyTaking.last_survey_taken.

0 投票
1 回答
4904 浏览

ruby-on-rails - Rails中两个类之间的多个belongs_to关系

我有一个事务类。该类的每个对象包括一个发行账户、一个发送账户和一个接收账户。其中每一个都是 Account 类的实例。在我的事务表中,我有 issuer_id、sender_id 和 receiver_id。

我应该如何指定 Transaction 和 Account 之间的关系以便我可以调用

谢谢你。

0 投票
2 回答
678 浏览

activerecord - 运行 rake db:create 时出现 Arel 弃用警告

我正在尝试使用 mysql2 v 0.2.6 在 Rails 3.1 中创建一个应用程序。运行时rake db:create,我收到以下错误:

我可以访问 MySQL 监视器,因此 gem 似乎安装正确。这里还能发生什么?

谢谢!

0 投票
1 回答
110 浏览

ruby-on-rails - 什么是 ActiveRelation (arel) 相当于 :from

我的一个模型中有这个 named_scope:

它的目的是创建一个包含最后 100 个视频的池(将该结果作为“视频”返回,以便其他范围在该数据集上运行),然后我可以在此之后链接范围并从该结果池中过滤记录。

是否有与 Arel 相同的声明?

0 投票
4 回答
9930 浏览

ruby-on-rails - 如何使用 ActiveRelation 编写 UNION 链?

我需要能够UNION使用 ActiveRelation 链接任意数量的子选择。

我对 ARel 的实现有点困惑,因为它似乎假设UNION是一个二进制操作。

然而:

是有效的 SQL。如果不进行讨厌的字符串替换,这可能吗?

0 投票
1 回答
18227 浏览

ruby-on-rails-3 - Ruby on Rails - 如何连接两个表?

我有两个一对多关系的表(主题和页面)。我想从主题和页面中添加标准来解析 sql,但进度非常缓慢,并且经常遇到问题。我是rails的新手,请帮忙。

受试者中的样本数据,在下面列出了三列:

页面中的示例数据,下面列出的列:

鉴于我不知道subject.id,我只知道主题名称和级别,以及页面名称。这是我想要生成的 sql(或类似的可以达到相同结果的东西):

我希望在结果中得到两行:

这是一个非常简单的 sql,但我无法在 rails 中得到我想要的。


第一条语句:subject = Subject.where(:name => 'Math', :level => 2) 第二条语句:subject.joins(:pages).where(['pages.name LIKE ?', '%Division'] )

问题:

  1. 链式 sql 的结果确实返回了两行,但是 subject.size 只说 1?
  2. 我如何告诉它也从 :pages 返回列?
  3. 为什么 subject.to_sql 仍然只显示语句 1 中的 sql,为什么它不包括语句 2 中的链式 sql?
  4. 本质上,我需要以不同的方式编写语句来解析上面列出的 sql(或达到相同的结果)?

非常感谢。

0 投票
3 回答
3950 浏览

ruby - Rails ActiveRelation 到哈希

我需要散列 ActiveRelation!例如我有这样的 AR

这里有一种简单的方法来创建哈希表的主键作为哈希键

例1:

例 2: